BC: repairs for fxvector and flvector equal-always?
#155
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Linux x86 | |
on: | |
push: | |
branches: | |
- master | |
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: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
strategy: | |
fail-fast: false | |
matrix: | |
cify: [nocify] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Setup cify if enabled | |
if: matrix.cify == 'cify' | |
run: echo "CIFY_OPTION=--enable-cify" >> $GITHUB_ENV | |
- name: Setup cify if disabled | |
if: matrix.cify == 'nocify' | |
run: echo "CIFY_OPTION=--disable-cify" >> $GITHUB_ENV | |
- name: Configuring Racket CGC | |
working-directory: ./racket/src | |
run: > | |
./configure | |
--prefix=/usr/local/racketcgc | |
--enable-werror | |
--enable-cgcdefault | |
--enable-jit | |
--enable-foreign | |
--enable-places | |
--enable-futures | |
--enable-float | |
$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 }}-x64_git${{ github.sha }}.tar.bz2 racketcgc | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }} | |
path: /tmp/racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 | |
build-racket3m: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
needs: build-racketcgc | |
strategy: | |
fail-fast: false | |
matrix: | |
cify: [nocify] | |
jit: [jit] | |
efp: [efp] | |
cc: [gcc] | |
include: | |
- jit: nojit | |
cify: cify | |
efp: noefp | |
cc: gcc | |
- jit: jit | |
cify: nocify | |
efp: efp | |
cc: gcc # clang has a problem with future tests timing out | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Setup cify if enabled | |
if: matrix.cify == 'cify' | |
run: echo "CIFY_OPTION=--enable-cify" >> $GITHUB_ENV | |
- name: Setup cify if disabled | |
if: matrix.cify == 'nocify' | |
run: echo "CIFY_OPTION=--disable-cify" >> $GITHUB_ENV | |
- name: Setup jit if enabled | |
if: matrix.jit == 'jit' | |
run: echo "JIT_OPTION=--enable-jit" >> $GITHUB_ENV | |
- name: Setup jit if disabled | |
if: matrix.jit == 'nojit' | |
run: echo "JIT_OPTION=--disable-jit" >> $GITHUB_ENV | |
- name: Setup efp if enabled | |
if: matrix.efp == 'efp' | |
run: echo "EFP_OPTIONS=--enable-extflonums --enable-places --enable-futures" >> $GITHUB_ENV | |
- name: Setup efp if disabled | |
if: matrix.efp == 'noefp' | |
run: echo "EFP_OPTIONS=--disable-extflonums --disable-places --disable-futures" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v4 | |
with: | |
name: racketcgc-debian10-nocify-x64_git${{ github.sha }} | |
path: /tmp | |
- name: Untar | |
working-directory: /usr/local | |
run: tar -xvjf /tmp/racketcgc-debian10-nocify-x64_git${{ github.sha }}.tar.bz2 | |
- name: Configuring Racket 3m | |
working-directory: ./racket/src | |
env: | |
CC: ${{ matrix.cc }} | |
run: > | |
./configure | |
--prefix=/usr/local/racket3m | |
--enable-werror | |
--enable-bcdefault | |
--enable-racket=/usr/local/racketcgc/bin/racket | |
--enable-foreign | |
--enable-float | |
--disable-docs | |
$CIFY_OPTION | |
$JIT_OPTION | |
$EFP_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 gcc and on MacOS with clang only. | |
- name: Tarballing | |
working-directory: /usr/local | |
run: tar -cvjf /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha}}.tar.bz2 racket3m | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }} | |
path: /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}.tar.bz2 | |
build-racketcs: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
needs: build-racketcgc | |
strategy: | |
fail-fast: false | |
matrix: | |
cc: [gcc, clang] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: racketcgc-debian10-nocify-x64_git${{ github.sha }} | |
path: /tmp | |
- name: Untar | |
working-directory: /usr/local | |
run: tar -xvjf /tmp/racketcgc-debian10-nocify-x64_git${{ github.sha }}.tar.bz2 | |
- 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-x64-${{ matrix.cc }}_git${{ github.sha }}.tar.bz2 racketcs | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: racketcs-debian10-x64-${{ matrix.cc }}_git${{ github.sha }} | |
path: /tmp/racketcs-debian10-x64-${{ matrix.cc }}_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: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
options: --init | |
needs: build-racketcgc | |
strategy: | |
fail-fast: false | |
matrix: | |
cify: [nocify] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }} | |
path: /tmp | |
- name: Untar | |
working-directory: /usr/local | |
run: tar -xvjf /tmp/racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 | |
- name: Extend PATH with Racket executable | |
run: echo "/usr/local/racketcgc/bin" >> $GITHUB_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 --timeout 300 -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: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
options: --init | |
needs: build-racket3m | |
strategy: | |
fail-fast: false | |
matrix: | |
cify: [nocify] | |
jit: [jit] | |
efp: [efp] | |
cc: [gcc] | |
include: | |
- jit: nojit | |
cify: cify | |
efp: noefp | |
cc: gcc | |
- jit: jit | |
cify: nocify | |
efp: efp | |
cc: gcc | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }} | |
path: /tmp | |
- name: Untar | |
working-directory: /usr/local | |
run: tar -xvjf /tmp/racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}.tar.bz2 | |
- name: Extend PATH with Racket executable | |
run: echo "/usr/local/racket3m/bin" >> $GITHUB_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 --timeout 300 -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-cs: | |
runs-on: ubuntu-22.04 | |
container: | |
image: racket/racket-ci:latest | |
options: --init | |
needs: build-racketcs | |
strategy: | |
fail-fast: false | |
matrix: | |
cc: [gcc] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: racketcs-debian10-x64-${{ matrix.cc }}_git${{ github.sha }} | |
path: /tmp | |
- name: Untar | |
working-directory: /usr/local | |
run: tar -xvjf /tmp/racketcs-debian10-x64-${{ matrix.cc }}_git${{ github.sha }}.tar.bz2 | |
- name: Extend PATH with Racket executable | |
run: echo "/usr/local/racketcs/bin" >> $GITHUB_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 --timeout 300 -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 | |
slack: | |
runs-on: ubuntu-latest | |
needs: [test-cgc, test-3m, test-cs] | |
# this is required, otherwise it gets skipped if any needed jobs fail. | |
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idneeds | |
if: always() | |
steps: | |
- uses: technote-space/workflow-conclusion-action@v3 | |
- name: Send Slack notification | |
uses: 8398a7/action-slack@v3 | |
if: github.repository == 'racket/racket' | |
with: | |
status: ${{ env.WORKFLOW_CONCLUSION }} | |
author_name: ${{ github.actor }} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |