CI support on self-hosted arm64 runners (#3294)
For the moment, due to a bug in moby, it's not possible to run these on arm32 (https://github.com/moby/moby/issues/41217)
This commit is contained in:
parent
5f8ad6039d
commit
5f74c59ef5
2
.github/workflows/ci-pr.yml
vendored
2
.github/workflows/ci-pr.yml
vendored
|
@ -4,7 +4,7 @@ on: [pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
buildtest-linux:
|
buildtest-linux-x86:
|
||||||
container:
|
container:
|
||||||
image: racket/racket-ci:latest
|
image: racket/racket-ci:latest
|
||||||
options: --init
|
options: --init
|
||||||
|
|
419
.github/workflows/ci-push-arm_linux.yml
vendored
Normal file
419
.github/workflows/ci-push-arm_linux.yml
vendored
Normal file
|
@ -0,0 +1,419 @@
|
||||||
|
name: CI Linux ARM
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# Build jobs
|
||||||
|
# These jobs build each Racket component separately and tests on the component start as soon as each
|
||||||
|
# component finishes building.
|
||||||
|
|
||||||
|
build-racketcgc:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
cify: [cify, nocify]
|
||||||
|
arch: [ARM64]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
- name: Setup jit if ARM
|
||||||
|
if: matrix.arch == 'ARM'
|
||||||
|
run: echo "::set-env name=JIT_OPTION::--enable-jit --enable-futures"
|
||||||
|
- name: Setup jit if ARM64
|
||||||
|
if: matrix.arch == 'ARM64'
|
||||||
|
run: echo "::set-env name=JIT_OPTION::--disable-jit --disable-futures"
|
||||||
|
- name: Setup cify if enabled
|
||||||
|
if: matrix.cify == 'cify'
|
||||||
|
run: echo "::set-env name=CIFY_OPTION::--enable-cify"
|
||||||
|
- name: Setup cify if disabled
|
||||||
|
if: matrix.cify == 'nocify'
|
||||||
|
run: echo "::set-env name=CIFY_OPTION::--disable-cify"
|
||||||
|
- name: Configuring Racket CGC
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: >
|
||||||
|
./configure
|
||||||
|
--prefix=/usr/local/racketcgc
|
||||||
|
--enable-werror
|
||||||
|
--enable-cgcdefault
|
||||||
|
--enable-foreign
|
||||||
|
--enable-places
|
||||||
|
--enable-float
|
||||||
|
$JIT_OPTION
|
||||||
|
$CIFY_OPTION
|
||||||
|
--enable-pthread
|
||||||
|
--disable-docs
|
||||||
|
- name: Building
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: |
|
||||||
|
export cpus=$(nproc)
|
||||||
|
make -l $cpus -j $((cpus+1))
|
||||||
|
- name: Installing
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: make -j $((cpus+1)) install
|
||||||
|
- name: Tarballing
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -cvjf /tmp/racketcgc-debian10-${{ matrix.cify }}-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2 racketcgc
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcgc-debian10-${{ matrix.cify }}-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp/racketcgc-debian10-${{ matrix.cify }}-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
|
||||||
|
build-racket3m:
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
|
||||||
|
needs: build-racketcgc
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arch: [ARM64]
|
||||||
|
cify: [cify, nocify]
|
||||||
|
cc: [gcc, clang]
|
||||||
|
ep: [ep, noep]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
- name: Setup cify if enabled
|
||||||
|
if: matrix.cify == 'cify'
|
||||||
|
run: echo "::set-env name=CIFY_OPTION::--enable-cify"
|
||||||
|
- name: Setup cify if disabled
|
||||||
|
if: matrix.cify == 'nocify'
|
||||||
|
run: echo "::set-env name=CIFY_OPTION::--disable-cify"
|
||||||
|
- name: Setup ep if enabled
|
||||||
|
if: matrix.ep == 'ep'
|
||||||
|
run: echo "::set-env name=EP_OPTIONS::--enable-extflonums --enable-places"
|
||||||
|
- name: Setup efp if disabled
|
||||||
|
if: matrix.efp == 'noep'
|
||||||
|
run: echo "::set-env name=EP_OPTIONS::--disable-extflonums --disable-places"
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcgc-debian10-nocify-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp
|
||||||
|
- name: Untar
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -xvjf /tmp/racketcgc-debian10-nocify-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
- name: Configuring Racket 3m
|
||||||
|
working-directory: ./racket/src
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.cc }}
|
||||||
|
run: >
|
||||||
|
./configure
|
||||||
|
--prefix=/usr/local/racket3m
|
||||||
|
--enable-bcdefault
|
||||||
|
--enable-bconly
|
||||||
|
--enable-werror
|
||||||
|
--enable-racket=/usr/local/racketcgc/bin/racket
|
||||||
|
--enable-foreign
|
||||||
|
--enable-float
|
||||||
|
--disable-docs
|
||||||
|
$CIFY_OPTION
|
||||||
|
$EP_OPTIONS
|
||||||
|
--enable-pthread
|
||||||
|
- name: Building
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: |
|
||||||
|
export cpus=$(nproc)
|
||||||
|
make -l $cpus -j $((cpus+1))
|
||||||
|
- name: Installing
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: make -j $((cpus+1)) install
|
||||||
|
# We build on Linux with clang and gcc and on MacOS with clang only.
|
||||||
|
# However, it makes little sense to test both builds on Linux so we tarball the
|
||||||
|
# gcc build only. Therefore this condition ensure we only perform the tarball
|
||||||
|
# and artifact upload on MacOS or (on Linux) if we are building with gcc.
|
||||||
|
- name: Tarballing
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -cvjf /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.ep }}-${{ matrix.arch }}_git${{ github.sha}}.tar.bz2 racket3m
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: matrix.cc == 'gcc'
|
||||||
|
with:
|
||||||
|
name: racket3m-debian10-${{ matrix.cify }}-${{ matrix.ep }}-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.ep }}-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
|
||||||
|
build-racketcs:
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
|
||||||
|
needs: build-racketcgc
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
cc: [gcc, clang]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcgc-debian10-nocify-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp
|
||||||
|
- name: Untar
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -xvjf /tmp/racketcgc-debian10-nocify-${{ matrix.arch }}_git${{ github.sha}}.tar.bz2
|
||||||
|
- name: Checking out ChezScheme
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: git clone --depth=1 --recurse-submodules -j3 https://github.com/racket/ChezScheme
|
||||||
|
- name: Configuring Racket CS
|
||||||
|
working-directory: ./racket/src
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.cc }}
|
||||||
|
run: >
|
||||||
|
./configure
|
||||||
|
--prefix=/usr/local/racketcs
|
||||||
|
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||||
|
--enable-racket=/usr/local/racketcgc/bin/racket
|
||||||
|
--enable-compress
|
||||||
|
--disable-docs
|
||||||
|
--enable-pthread
|
||||||
|
--enable-csdefault
|
||||||
|
--enable-csonly
|
||||||
|
- name: Building
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: |
|
||||||
|
export cpus=$(nproc)
|
||||||
|
make -l $cpus -j $((cpus+1))
|
||||||
|
- name: Installing
|
||||||
|
working-directory: ./racket/src
|
||||||
|
run: make -j $((cpus+1)) install
|
||||||
|
- name: Tarballing
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -cvjf /tmp/racketcs-debian10-${{ matrix.arch }}_git${{ github.sha}}.tar.bz2 racketcs
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcs-debian10-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp/racketcs-debian10-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
|
||||||
|
# Tests
|
||||||
|
# Unfortunately Actions does not support atm yaml anchors
|
||||||
|
# otherwise all the following jobs could be simplified
|
||||||
|
# Note: the reason we cannot transform this into a matrix
|
||||||
|
# build is because we cannot use variables in the needs keyword.
|
||||||
|
test-cgc:
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
options: --init
|
||||||
|
|
||||||
|
needs: build-racketcgc
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arch: [ARM64]
|
||||||
|
cify: [cify, nocify]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- run: find ${HOME}/.racket -type f
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcgc-debian10-${{ matrix.cify }}-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp
|
||||||
|
- name: Untar
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -xvjf /tmp/racketcgc-debian10-${{ matrix.cify }}-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
- name: Extend PATH with Racket executable
|
||||||
|
run: echo "::set-env name=PATH::/usr/local/racketcgc/bin:$PATH"
|
||||||
|
- name: Check for Racket
|
||||||
|
run: racket --version
|
||||||
|
- name: Install catalog
|
||||||
|
run: |
|
||||||
|
racket -l- pkg/dirs-catalog --immediate $PWD/rktcat $PWD/pkgs/
|
||||||
|
raco pkg config --set catalogs $PWD/rktcat/ https://pkgs.racket-lang.org https://planet-compats.racket-lang.org
|
||||||
|
- name: Install racket-test dependency
|
||||||
|
run: raco pkg install --auto racket-test
|
||||||
|
- name: Run tests/racket/test
|
||||||
|
run: raco test -l tests/racket/test
|
||||||
|
- name: Run tests/racket/contract/all
|
||||||
|
run: racket -l tests/racket/contract/all
|
||||||
|
- name: Run tests/json/json
|
||||||
|
run: raco test -l tests/json/json
|
||||||
|
- name: Run tests/file/main
|
||||||
|
run: raco test -l tests/file/main
|
||||||
|
- name: Run tests/net/head
|
||||||
|
run: raco test -l tests/net/head
|
||||||
|
- name: Run tests/net/uri-codec
|
||||||
|
run: raco test -l tests/net/uri-codec
|
||||||
|
- name: Run tests/net/url
|
||||||
|
run: raco test -l tests/net/url
|
||||||
|
- name: Run tests/net/url-port
|
||||||
|
run: raco test -l tests/net/url-port
|
||||||
|
- name: Run tests/net/encoders
|
||||||
|
run: raco test -l tests/net/encoders
|
||||||
|
- name: Run tests/openssl/basic
|
||||||
|
run: raco test -l tests/openssl/basic
|
||||||
|
- name: Run tests/openssl/https
|
||||||
|
run: raco test -l tests/openssl/https
|
||||||
|
- name: Run tests/match/main
|
||||||
|
run: raco test -l tests/match/main
|
||||||
|
- name: Run tests/zo-path
|
||||||
|
run: raco test -l tests/zo-path
|
||||||
|
- name: Run tests/xml
|
||||||
|
run: raco test -c tests/xml
|
||||||
|
- name: Run tests/future
|
||||||
|
run: raco test -c tests/future
|
||||||
|
- name: Run tests/stxparse
|
||||||
|
run: raco test -c tests/stxparse
|
||||||
|
- name: Install db tests dependency
|
||||||
|
run: raco pkg install --auto db-test
|
||||||
|
- name: Run db tests
|
||||||
|
run: raco test -l tests/db/all-tests
|
||||||
|
- name: Run syntax tests
|
||||||
|
run: raco test -c tests/syntax
|
||||||
|
|
||||||
|
test-3m:
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
options: --init
|
||||||
|
|
||||||
|
needs: build-racket3m
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
cify: [cify, nocify]
|
||||||
|
ep: [ep, noep]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racket3m-debian10-${{ matrix.cify }}-${{ matrix.ep }}-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp
|
||||||
|
- name: Untar
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -xvjf /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.ep }}-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
- name: Extend PATH with Racket executable
|
||||||
|
run: echo "::set-env name=PATH::/usr/local/racket3m/bin:$PATH"
|
||||||
|
- name: Check for Racket
|
||||||
|
run: racket --version
|
||||||
|
- name: Install catalog and required packages
|
||||||
|
run: |
|
||||||
|
racket -l- pkg/dirs-catalog --immediate $PWD/rktcat $PWD/pkgs/
|
||||||
|
raco pkg config --set catalogs $PWD/rktcat/ https://pkgs.racket-lang.org https://planet-compats.racket-lang.org
|
||||||
|
- name: Install racket-test dependency
|
||||||
|
run: raco pkg install --auto racket-test
|
||||||
|
- name: Run tests/racket/test
|
||||||
|
run: raco test -l tests/racket/test
|
||||||
|
- name: Run tests/racket/contract/all
|
||||||
|
run: racket -l tests/racket/contract/all
|
||||||
|
- name: Run tests/json/json
|
||||||
|
run: raco test -l tests/json/json
|
||||||
|
- name: Run tests/file/main
|
||||||
|
run: raco test -l tests/file/main
|
||||||
|
- name: Run tests/net/head
|
||||||
|
run: raco test -l tests/net/head
|
||||||
|
- name: Run tests/net/uri-codec
|
||||||
|
run: raco test -l tests/net/uri-codec
|
||||||
|
- name: Run tests/net/url
|
||||||
|
run: raco test -l tests/net/url
|
||||||
|
- name: Run tests/net/url-port
|
||||||
|
run: raco test -l tests/net/url-port
|
||||||
|
- name: Run tests/net/encoders
|
||||||
|
run: raco test -l tests/net/encoders
|
||||||
|
- name: Run tests/openssl/basic
|
||||||
|
run: raco test -l tests/openssl/basic
|
||||||
|
- name: Run tests/openssl/https
|
||||||
|
run: raco test -l tests/openssl/https
|
||||||
|
- name: Run tests/match/main
|
||||||
|
run: raco test -l tests/match/main
|
||||||
|
- name: Run tests/zo-path
|
||||||
|
run: raco test -l tests/zo-path
|
||||||
|
- name: Run tests/xml
|
||||||
|
run: raco test -c tests/xml
|
||||||
|
- name: Run tests/future
|
||||||
|
run: raco test -c tests/future
|
||||||
|
- name: Run tests/stxparse
|
||||||
|
run: raco test -c tests/stxparse
|
||||||
|
- name: Install db tests dependency
|
||||||
|
run: raco pkg install --auto db-test
|
||||||
|
- name: Run db tests
|
||||||
|
run: raco test -l tests/db/all-tests
|
||||||
|
|
||||||
|
test-cs:
|
||||||
|
container:
|
||||||
|
image: racket/racket-ci:latest
|
||||||
|
options: --init
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [ARM64]
|
||||||
|
|
||||||
|
needs: build-racketcs
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: racketcs-debian10-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: /tmp
|
||||||
|
- name: Untar
|
||||||
|
working-directory: /usr/local
|
||||||
|
run: tar -xvjf /tmp/racketcs-debian10-${{ matrix.arch }}_git${{ github.sha }}.tar.bz2
|
||||||
|
- name: Extend PATH with Racket executable
|
||||||
|
run: echo "::set-env name=PATH::/usr/local/racketcs/bin:$PATH"
|
||||||
|
- name: Check for Racket
|
||||||
|
run: racket --version
|
||||||
|
- name: Install catalog and required packages
|
||||||
|
run: |
|
||||||
|
racket -l- pkg/dirs-catalog --immediate $PWD/rktcat $PWD/pkgs/
|
||||||
|
raco pkg config --set catalogs $PWD/rktcat/ https://pkgs.racket-lang.org https://planet-compats.racket-lang.org
|
||||||
|
- name: Install racket-test dependency
|
||||||
|
run: raco pkg install --auto racket-test
|
||||||
|
- name: Run tests/racket/test
|
||||||
|
run: raco test -l tests/racket/test
|
||||||
|
- name: Run tests/racket/contract/all
|
||||||
|
run: racket -l tests/racket/contract/all
|
||||||
|
- name: Run tests/json/json
|
||||||
|
run: raco test -l tests/json/json
|
||||||
|
- name: Run tests/file/main
|
||||||
|
run: raco test -l tests/file/main
|
||||||
|
- name: Run tests/net/head
|
||||||
|
run: raco test -l tests/net/head
|
||||||
|
- name: Run tests/net/uri-codec
|
||||||
|
run: raco test -l tests/net/uri-codec
|
||||||
|
- name: Run tests/net/url
|
||||||
|
run: raco test -l tests/net/url
|
||||||
|
- name: Run tests/net/url-port
|
||||||
|
run: raco test -l tests/net/url-port
|
||||||
|
- name: Run tests/net/encoders
|
||||||
|
run: raco test -l tests/net/encoders
|
||||||
|
- name: Run tests/openssl/basic
|
||||||
|
run: raco test -l tests/openssl/basic
|
||||||
|
- name: Run tests/openssl/https
|
||||||
|
run: raco test -l tests/openssl/https
|
||||||
|
- name: Run tests/match/main
|
||||||
|
run: raco test -l tests/match/main
|
||||||
|
- name: Run tests/zo-path
|
||||||
|
run: raco test -l tests/zo-path
|
||||||
|
- name: Run tests/xml
|
||||||
|
run: raco test -c tests/xml
|
||||||
|
- name: Run tests/future
|
||||||
|
run: raco test -c tests/future
|
||||||
|
- name: Run tests/stxparse
|
||||||
|
run: raco test -c tests/stxparse
|
||||||
|
- name: Install db tests dependency
|
||||||
|
run: raco pkg install --auto db-test
|
||||||
|
- name: Run db tests
|
||||||
|
run: raco test -l tests/db/all-tests
|
|
@ -1,4 +1,4 @@
|
||||||
name: CI Linux
|
name: CI Linux x86
|
||||||
|
|
||||||
on: [push]
|
on: [push]
|
||||||
|
|
183
.github/workflows/ubsan-arm.yml
vendored
Normal file
183
.github/workflows/ubsan-arm.yml
vendored
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
name: Test with UBSan on ARM
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# Build jobs
|
||||||
|
# These jobs build Racket using undefined behaviour sanitizers and gathers the results into a final log
|
||||||
|
racket3m-ubsan:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arch: [ARM64]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
container: racket/racket-ci:latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
- name: Create logs directory
|
||||||
|
run: mkdir $PWD/logs
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
export cpus=$(grep -c ^processor /proc/cpuinfo)
|
||||||
|
make CPUS="${cpus}" PKGS="racket-test db-test unstable-flonum-lib net-test" CONFIGURE_ARGS_qq='CFLAGS="-fno-var-tracking-assignments" --enable-ubsan' RACKETBC_SUFFIX="" bc-in-place 2>&1 | tee logs/build.log
|
||||||
|
- name: Add new racket to PATH
|
||||||
|
run: |
|
||||||
|
echo "${GITHUB_WORKSPACE}/racket/bin" >> $GITHUB_PATH
|
||||||
|
find /__w/racket/racket/racket/bin -type f
|
||||||
|
- name: Racket version
|
||||||
|
run: |
|
||||||
|
which racket
|
||||||
|
racket --version
|
||||||
|
- name: Run tests/racket/test
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/racket/test 2>&1 | tee logs/racket-test.log
|
||||||
|
- name: Run tests/racket/contract/all
|
||||||
|
continue-on-error: true
|
||||||
|
run: racket -l tests/racket/contract/all | tee logs/contract-all.log
|
||||||
|
- name: Run tests/json/json
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/json/json | tee logs/json-json.log
|
||||||
|
- name: Run tests/file/main
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/file/main | tee logs/file-main.log
|
||||||
|
- name: Run tests/net/head
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/head | tee logs/net-head.log
|
||||||
|
- name: Run tests/net/uri-codec
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/uri-codec | tee logs/uri-codec.log
|
||||||
|
- name: Run tests/net/url
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/url | tee logs/net-url.log
|
||||||
|
- name: Run tests/net/url-port
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/url-port | tee logs/url-port.log
|
||||||
|
- name: Run tests/net/encoders
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/encoders | tee logs/net-encoders.log
|
||||||
|
- name: Run tests/openssl/basic
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/openssl/basic | tee logs/openssl-basic.log
|
||||||
|
- name: Run tests/openssl/https
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/openssl/https | tee logs/openssl-https.log
|
||||||
|
- name: Run tests/match/main
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/match/main | tee logs/match-main.log
|
||||||
|
- name: Run tests/zo-path
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/zo-path | tee logs/zo-path.log
|
||||||
|
- name: Run tests/xml
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/xml | tee logs/xml.log
|
||||||
|
- name: Run tests/future
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/future | tee logs/future.log
|
||||||
|
- name: Run tests/stxparse
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/stxparse | tee logs/stxparse.log
|
||||||
|
- name: Run db tests
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/db/all-tests | tee logs/db-all-tests.log
|
||||||
|
- name: Gather runtime errors
|
||||||
|
run: |
|
||||||
|
grep 'runtime error' logs/*.log > runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log || true
|
||||||
|
test ! -s runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: runtime-errors-${{ matrix.arch }}_git${{ github.sha }}
|
||||||
|
path: runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log
|
||||||
|
|
||||||
|
racketcs-ubsan:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arch: [ARM64]
|
||||||
|
|
||||||
|
runs-on: [self-hosted, Linux, '${{ matrix.arch }}']
|
||||||
|
container: racket/racket-ci:latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
- name: Create logs directory
|
||||||
|
run: mkdir $PWD/logs
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
export cpus=$(grep -c ^processor /proc/cpuinfo)
|
||||||
|
make CPUS="${cpus}" PKGS="racket-test db-test unstable-flonum-lib net-test" CONFIGURE_ARGS_qq='CFLAGS="-fno-var-tracking-assignments" --enable-ubsan' cs-in-place 2>&1 | tee logs/build.log
|
||||||
|
- name: Add new racket to PATH
|
||||||
|
run: |
|
||||||
|
echo "${GITHUB_WORKSPACE}/racket/bin" >> $GITHUB_PATH
|
||||||
|
find /__w/racket/racket/racket/bin -type f
|
||||||
|
- name: Racket version
|
||||||
|
run: |
|
||||||
|
which racket
|
||||||
|
racket --version
|
||||||
|
- name: Run tests/racket/test
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/racket/test 2>&1 | tee logs/racket-test.log
|
||||||
|
- name: Run tests/racket/contract/all
|
||||||
|
continue-on-error: true
|
||||||
|
run: racket -l tests/racket/contract/all | tee logs/contract-all.log
|
||||||
|
- name: Run tests/json/json
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/json/json | tee logs/json-json.log
|
||||||
|
- name: Run tests/file/main
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/file/main | tee logs/file-main.log
|
||||||
|
- name: Run tests/net/head
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/head | tee logs/net-head.log
|
||||||
|
- name: Run tests/net/uri-codec
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/uri-codec | tee logs/uri-codec.log
|
||||||
|
- name: Run tests/net/url
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/url | tee logs/net-url.log
|
||||||
|
- name: Run tests/net/url-port
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/url-port | tee logs/url-port.log
|
||||||
|
- name: Run tests/net/encoders
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/net/encoders | tee logs/net-encoders.log
|
||||||
|
- name: Run tests/openssl/basic
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/openssl/basic | tee logs/openssl-basic.log
|
||||||
|
- name: Run tests/openssl/https
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/openssl/https | tee logs/openssl-https.log
|
||||||
|
- name: Run tests/match/main
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/match/main | tee logs/match-main.log
|
||||||
|
- name: Run tests/zo-path
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/zo-path | tee logs/zo-path.log
|
||||||
|
- name: Run tests/xml
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/xml | tee logs/xml.log
|
||||||
|
- name: Run tests/future
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/future | tee logs/future.log
|
||||||
|
- name: Run tests/stxparse
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -c tests/stxparse | tee logs/stxparse.log
|
||||||
|
- name: Run db tests
|
||||||
|
continue-on-error: true
|
||||||
|
run: raco test -l tests/db/all-tests | tee logs/db-all-tests.log
|
||||||
|
- name: Gather runtime errors
|
||||||
|
run: |
|
||||||
|
grep 'runtime error' logs/*.log > runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log || true
|
||||||
|
test ! -s runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
name: runtime-errors-${{ matrix.arch }}-cs_git${{ github.sha }}
|
||||||
|
path: runtime-errors-${{ matrix.arch }}_git${{ github.sha }}.log
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: Test with UBSan
|
name: Test with UBSan on X86
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user