Run CI jobs inside containers (#3134)
Also splits Linux and MacOS push workflows, since they cannot share a matrix. Updates several checkout, upload/download-artifact actions to v2.
This commit is contained in:
parent
e4485d1e11
commit
3657b096d6
|
@ -4,7 +4,7 @@ LABEL description="Debian Stable Slim image with Racket build dependencies pre-i
|
|||
|
||||
RUN apt-get update && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y unzip python libxml2-dev libfindbin-libs-perl make gcc clang uuid-dev git && \
|
||||
apt-get install -y unzip python libxml2-dev libfindbin-libs-perl make gcc uuid-dev git clang && \
|
||||
apt-get clean
|
||||
|
||||
CMD ["bash"]
|
||||
|
|
46
.github/workflows/ci-pr.yml
vendored
46
.github/workflows/ci-pr.yml
vendored
|
@ -4,17 +4,47 @@ on: [pull_request]
|
|||
|
||||
jobs:
|
||||
|
||||
buildtest-unixstyle:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
buildtest-linux:
|
||||
container:
|
||||
image: racket/racket-ci:testdeps
|
||||
options: --init
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build
|
||||
run: make CPUS="3" PKGS="racket-test db-test unstable-flonum-lib net-test"
|
||||
run: make CPUS=$(nproc) PKGS="racket-test db-test unstable-flonum-lib net-test"
|
||||
- name: Test
|
||||
run: |
|
||||
export PATH=$PATH:`pwd`/racket/bin
|
||||
raco test -l tests/racket/test
|
||||
racket -l tests/racket/contract/all
|
||||
raco test -l tests/json/json
|
||||
raco test -l tests/file/main
|
||||
raco test -l tests/net/head
|
||||
raco test -l tests/net/uri-codec
|
||||
raco test -l tests/net/url
|
||||
raco test -l tests/net/url-port
|
||||
raco test -l tests/net/encoders
|
||||
raco test -l tests/openssl/basic
|
||||
raco test -l tests/openssl/https
|
||||
raco test -l tests/match/main
|
||||
raco test -l tests/zo-path
|
||||
raco test -c tests/xml
|
||||
raco test -c tests/future
|
||||
raco test -l tests/db/all-tests
|
||||
raco test -c tests/stxparse
|
||||
raco test -c tests/syntax
|
||||
|
||||
buildtest-macos:
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build
|
||||
run: make CPUS=$(sysctl -n hw.physicalcpu) PKGS="racket-test db-test unstable-flonum-lib net-test"
|
||||
- name: Test
|
||||
run: |
|
||||
export PATH=$PATH:`pwd`/racket/bin
|
||||
|
@ -46,7 +76,7 @@ jobs:
|
|||
# Version: VisualStudio/16.3.6+29418.71
|
||||
# Location: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build
|
||||
working-directory: .\racket\src\worksp
|
||||
shell: cmd
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name: CI
|
||||
name: CI Linux
|
||||
|
||||
on: [push]
|
||||
|
||||
|
@ -9,23 +9,19 @@ jobs:
|
|||
# component finishes building.
|
||||
|
||||
build-racketcgc:
|
||||
runs-on: ubuntu-18.04
|
||||
container:
|
||||
image: racket/racket-ci:builddeps
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
cify: [cify, nocify]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
RACKET_EXTRA_CONFIGURE_ARGS: ""
|
||||
|
||||
cify: [cify, nocify]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
- name: Setup OS specific configure args
|
||||
if: runner.os == 'macOS'
|
||||
run: echo "::set-env name=RACKET_EXTRA_CONFIGURE_ARGS::--enable-macprefix $RACKET_EXTRA_CONFIGURE_ARGS"
|
||||
- name: Setup cify if enabled
|
||||
if: matrix.cify == 'cify'
|
||||
run: echo "::set-env name=CIFY_OPTION::--enable-cify"
|
||||
|
@ -36,9 +32,8 @@ jobs:
|
|||
working-directory: ./racket/src
|
||||
run: >
|
||||
./configure
|
||||
--prefix=${{ runner.temp }}/racketcgc
|
||||
--prefix=/usr/local/racketcgc
|
||||
--enable-werror
|
||||
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||
--enable-cgcdefault
|
||||
--enable-jit
|
||||
--enable-foreign
|
||||
|
@ -51,47 +46,41 @@ jobs:
|
|||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(grep -c ^processor /proc/cpuinfo)
|
||||
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: ${{ runner.temp }}
|
||||
run: tar -cvjf racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 racketcgc
|
||||
- uses: actions/upload-artifact@v1
|
||||
working-directory: /usr/local
|
||||
run: tar -cvjf /tmp/racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 racketcgc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}/racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
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-18.04
|
||||
container:
|
||||
image: racket/racket-ci:builddeps
|
||||
|
||||
needs: build-racketcgc
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
cc: [gcc, clang]
|
||||
cify: [cify, nocify]
|
||||
cc: [gcc, clang]
|
||||
jit: [jit, nojit]
|
||||
efp: [efp, noefp]
|
||||
exclude:
|
||||
- os: macos-latest
|
||||
cc: gcc
|
||||
- jit: nojit
|
||||
efp: efp
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
needs: build-racketcgc
|
||||
|
||||
env:
|
||||
RACKET_EXTRA_CONFIGURE_ARGS: ""
|
||||
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
- name: Setup OS specific configure args
|
||||
if: runner.os == 'macOS'
|
||||
run: echo "::set-env name=RACKET_EXTRA_CONFIGURE_ARGS::--enable-macprefix $RACKET_EXTRA_CONFIGURE_ARGS"
|
||||
- name: Setup cify if enabled
|
||||
if: matrix.cify == 'cify'
|
||||
run: echo "::set-env name=CIFY_OPTION::--enable-cify"
|
||||
|
@ -110,23 +99,22 @@ jobs:
|
|||
- name: Setup efp if disabled
|
||||
if: matrix.efp == 'noefp'
|
||||
run: echo "::set-env name=EFP_OPTIONS::--disable-extflonums --disable-places --disable-futures"
|
||||
- uses: actions/download-artifact@v1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
name: racketcgc-debian10-nocify-x64_git${{ github.sha }}
|
||||
path: /tmp
|
||||
- name: Untar
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -xvjf racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}.tar.bz2
|
||||
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=${{ runner.temp }}/racket3m
|
||||
--prefix=/usr/local/racket3m
|
||||
--enable-werror
|
||||
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||
--enable-racket=${{ runner.temp }}/racketcgc/bin/racket
|
||||
--enable-racket=/usr/local/racketcgc/bin/racket
|
||||
--enable-foreign
|
||||
--enable-float
|
||||
--disable-docs
|
||||
|
@ -137,7 +125,7 @@ jobs:
|
|||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(grep -c ^processor /proc/cpuinfo)
|
||||
export cpus=$(nproc)
|
||||
make -l $cpus -j $((cpus+1))
|
||||
- name: Installing
|
||||
working-directory: ./racket/src
|
||||
|
@ -147,50 +135,36 @@ jobs:
|
|||
# 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
|
||||
if: matrix.cc == 'gcc' || matrix.os == 'macos-latest'
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -cvjf racket3m-${{ matrix.os }}-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha}}.tar.bz2 racket3m
|
||||
- uses: actions/upload-artifact@v1
|
||||
if: matrix.cc == 'gcc' || matrix.os == 'macos-latest'
|
||||
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@v2
|
||||
if: matrix.cc == 'gcc'
|
||||
with:
|
||||
name: racket3m-${{ matrix.os }}-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}/racket3m-${{ matrix.os }}-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}.tar.bz2
|
||||
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-18.04
|
||||
container:
|
||||
image: racket/racket-ci:builddeps
|
||||
|
||||
needs: build-racketcgc
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
cc: [gcc, clang]
|
||||
exclude:
|
||||
- os: macos-latest
|
||||
cc: gcc
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
needs: build-racketcgc
|
||||
|
||||
env:
|
||||
RACKET_EXTRA_CONFIGURE_ARGS: ""
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
- name: Setup OS specific configure args
|
||||
if: runner.os == 'macOS'
|
||||
run: echo "::set-env name=RACKET_EXTRA_CONFIGURE_ARGS::--enable-macprefix $RACKET_EXTRA_CONFIGURE_ARGS"
|
||||
- uses: actions/download-artifact@v1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
name: racketcgc-debian10-nocify-x64_git${{ github.sha }}
|
||||
path: /tmp
|
||||
- name: Untar
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -xvjf racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha}}.tar.bz2
|
||||
- name: Install pkg dependencies
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y git uuid-dev
|
||||
working-directory: /usr/local
|
||||
run: tar -xvjf /tmp/racketcgc-debian10-nocify-x64_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
|
||||
|
@ -200,9 +174,9 @@ jobs:
|
|||
CC: ${{ matrix.cc }}
|
||||
run: >
|
||||
./configure
|
||||
--prefix=${{ runner.temp }}/racketcs
|
||||
--prefix=/usr/local/racketcs
|
||||
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||
--enable-racket=${{ runner.temp }}/racketcgc/bin/racket
|
||||
--enable-racket=/usr/local/racketcgc/bin/racket
|
||||
--enable-compress
|
||||
--disable-docs
|
||||
--enable-pthread
|
||||
|
@ -211,38 +185,18 @@ jobs:
|
|||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(grep -c ^processor /proc/cpuinfo)
|
||||
export cpus=$(nproc)
|
||||
make -l $cpus -j $((cpus+1))
|
||||
- name: Installing
|
||||
working-directory: ./racket/src
|
||||
run: make -j $((cpus+1)) install
|
||||
- name: Tarballing
|
||||
if: matrix.cc == 'gcc' || matrix.os == 'macos-latest'
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -cvjf racketcs-${{ matrix.os }}-x64_git${{ github.sha}}.tar.bz2 racketcs
|
||||
- uses: actions/upload-artifact@v1
|
||||
if: matrix.cc == 'gcc' || matrix.os == 'macos-latest'
|
||||
working-directory: /usr/local
|
||||
run: tar -cvjf /tmp/racketcs-debian10-x64_git${{ github.sha}}.tar.bz2 racketcs
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: racketcs-${{ matrix.os }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}/racketcs-${{ matrix.os }}-x64_git${{ github.sha }}.tar.bz2
|
||||
|
||||
build-win:
|
||||
runs-on: windows-latest
|
||||
|
||||
# According to
|
||||
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/software-installed-on-github-hosted-runners#windows-server-2019
|
||||
# VS2019 is what is installed in the hosted runners:
|
||||
# Version: VisualStudio/16.3.6+29418.71
|
||||
# Location: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Build
|
||||
working-directory: .\racket\src\worksp
|
||||
shell: cmd
|
||||
run: |
|
||||
call msvcprep.bat x86_amd64
|
||||
call build.bat
|
||||
call ..\..\racket.exe csbuild.rkt -- --recurse-submodules --depth=1
|
||||
name: racketcs-debian10-x64_git${{ github.sha }}
|
||||
path: /tmp/racketcs-debian10-x64_git${{ github.sha }}.tar.bz2
|
||||
|
||||
# Tests
|
||||
# Unfortunately Actions does not support atm yaml anchors
|
||||
|
@ -250,28 +204,29 @@ jobs:
|
|||
# Note: the reason we cannot transform this into a matrix
|
||||
# build is because we cannot use variables in the needs keyword.
|
||||
test-cgc:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
cify: [cify, nocify]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: ubuntu-18.04
|
||||
container:
|
||||
image: racket/racket-ci:testdeps
|
||||
options: --init
|
||||
|
||||
needs: build-racketcgc
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
cify: [cify, nocify]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/download-artifact@v1
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
name: racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: /tmp
|
||||
- name: Untar
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -xvjf racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
working-directory: /usr/local
|
||||
run: tar -xvjf /tmp/racketcgc-debian10-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Extend PATH with Racket executable
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: echo "::set-env name=PATH::$PWD/racketcgc/bin:$PATH"
|
||||
run: echo "::set-env name=PATH::/usr/local/racketcgc/bin:$PATH"
|
||||
- name: Check for Racket
|
||||
run: racket --version
|
||||
- name: Install catalog
|
||||
|
@ -320,10 +275,16 @@ jobs:
|
|||
run: raco test -c tests/syntax
|
||||
|
||||
test-3m:
|
||||
runs-on: ubuntu-18.04
|
||||
container:
|
||||
image: racket/racket-ci:testdeps
|
||||
options: --init
|
||||
|
||||
needs: build-racket3m
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
cify: [cify, nocify]
|
||||
jit: [jit, nojit]
|
||||
efp: [efp, noefp]
|
||||
|
@ -331,22 +292,17 @@ jobs:
|
|||
- jit: nojit
|
||||
efp: efp
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
needs: build-racket3m
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/download-artifact@v1
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racket3m-${{ matrix.os }}-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
name: racket3m-debian10-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}
|
||||
path: /tmp
|
||||
- name: Untar
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -xvjf racket3m-${{ matrix.os }}-${{ matrix.cify }}-${{ matrix.jit }}-${{ matrix.efp }}-x64_git${{ github.sha }}.tar.bz2
|
||||
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
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: echo "::set-env name=PATH::$PWD/racket3m/bin:$PATH"
|
||||
run: echo "::set-env name=PATH::/usr/local/racket3m/bin:$PATH"
|
||||
- name: Check for Racket
|
||||
run: racket --version
|
||||
- name: Install catalog and required packages
|
||||
|
@ -393,27 +349,24 @@ jobs:
|
|||
run: raco test -l tests/db/all-tests
|
||||
|
||||
test-cs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: ubuntu-18.04
|
||||
container:
|
||||
image: racket/racket-ci:testdeps
|
||||
options: --init
|
||||
|
||||
needs: build-racketcs
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/download-artifact@v1
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcs-${{ matrix.os }}-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
name: racketcs-debian10-x64_git${{ github.sha }}
|
||||
path: /tmp
|
||||
- name: Untar
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: tar -xvjf racketcs-${{ matrix.os }}-x64_git${{ github.sha }}.tar.bz2
|
||||
working-directory: /usr/local
|
||||
run: tar -xvjf /tmp/racketcs-debian10-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Extend PATH with Racket executable
|
||||
working-directory: ${{ runner.temp }}
|
||||
run: echo "::set-env name=PATH::$PWD/racketcs/bin:$PATH"
|
||||
run: echo "::set-env name=PATH::/usr/local/racketcs/bin:$PATH"
|
||||
- name: Check for Racket
|
||||
run: racket --version
|
||||
- name: Install catalog and required packages
|
368
.github/workflows/ci-push_macos.yml
vendored
Normal file
368
.github/workflows/ci-push_macos.yml
vendored
Normal file
|
@ -0,0 +1,368 @@
|
|||
name: CI MacOS
|
||||
|
||||
on: [push]
|
||||
|
||||
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]
|
||||
|
||||
runs-on: macos-latest
|
||||
env:
|
||||
RACKET_EXTRA_CONFIGURE_ARGS: ""
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
- name: Setup cify if enabled1
|
||||
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=$GITHUB_WORKSPACE/racketcgc
|
||||
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||
--enable-cgcdefault
|
||||
--enable-jit
|
||||
--enable-foreign
|
||||
--enable-macprefix
|
||||
--enable-places
|
||||
--enable-futures
|
||||
--enable-float
|
||||
$CIFY_OPTION
|
||||
--enable-pthread
|
||||
--disable-docs
|
||||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(sysctl -n hw.physicalcpu)
|
||||
make CFLAGS="-Werror" -l $cpus -j $((cpus+1))
|
||||
- name: Installing
|
||||
working-directory: ./racket/src
|
||||
run: make -j $((cpus+1)) install
|
||||
- name: Tarballing
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -cvjf racketcgc-macos-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 racketcgc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: racketcgc-macos-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}/racketcgc-macos-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
|
||||
build-racket3m:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
cify: [cify, nocify]
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
needs: build-racketcgc
|
||||
|
||||
env:
|
||||
RACKET_EXTRA_CONFIGURE_ARGS: ""
|
||||
|
||||
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"
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcgc-macos-nocify-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
- name: Untar
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -xvjf ${{ runner.temp }}/racketcgc-macos-nocify-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Configuring Racket 3m
|
||||
working-directory: ./racket/src
|
||||
env:
|
||||
CC: clang
|
||||
run: >
|
||||
./configure
|
||||
--prefix=$GITHUB_WORKSPACE/racket3m
|
||||
$RACKET_EXTRA_CONFIGURE_ARGS
|
||||
--enable-racket=$GITHUB_WORKSPACE/racketcgc/bin/racket
|
||||
--enable-jit
|
||||
--enable-foreign
|
||||
--enable-macprefix
|
||||
--enable-places
|
||||
--enable-futures
|
||||
--enable-float
|
||||
--disable-docs
|
||||
$CIFY_OPTION
|
||||
--enable-pthread
|
||||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(sysctl -n hw.physicalcpu)
|
||||
make CFLAGS="-Werror" -l $cpus -j $((cpus+1))
|
||||
- name: Installing
|
||||
working-directory: ./racket/src
|
||||
run: make -j $((cpus+1)) install
|
||||
- name: Tarballing
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -cvjf racket3m-macos-${{ matrix.cify }}-x64_git${{ github.sha}}.tar.bz2 racket3m
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: racket3m-macos-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}/racket3m-macos-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
|
||||
build-racketcs:
|
||||
runs-on: macos-latest
|
||||
needs: build-racketcgc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
- uses: actions/download-artifact@master
|
||||
with:
|
||||
name: racketcgc-macos-nocify-x64_git${{ github.sha }}
|
||||
path: ${{ runner.temp }}
|
||||
- name: Untar
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -xvjf ${{ runner.temp }}/racketcgc-macos-nocify-x64_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=$GITHUB_WORKSPACE/racketcs
|
||||
--enable-racket=$GITHUB_WORKSPACE/racketcgc/bin/racket
|
||||
--enable-macprefix
|
||||
--enable-compress
|
||||
--disable-docs
|
||||
--enable-pthread
|
||||
--enable-csdefault
|
||||
--enable-csonly
|
||||
- name: Building
|
||||
working-directory: ./racket/src
|
||||
run: |
|
||||
export cpus=$(sysctl -n hw.physicalcpu)
|
||||
make -l $cpus -j $((cpus+1))
|
||||
- name: Installing
|
||||
working-directory: ./racket/src
|
||||
run: make -j $((cpus+1)) install
|
||||
- name: Tarballing
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -cvjf racketcs-macos-x64_git${{ github.sha}}.tar.bz2 racketcs
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: racketcs-macos-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}/racketcs-macos-x64_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:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
cify: [cify, nocify]
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
needs: build-racketcgc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcgc-macos-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}
|
||||
- name: Untar
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -xvjf racketcgc-macos-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Extend PATH with Racket executable
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: echo "::set-env name=PATH::$PWD/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/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-3m:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
cify: [cify, nocify]
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
needs: build-racket3m
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@master
|
||||
with:
|
||||
name: racket3m-macos-${{ matrix.cify }}-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}
|
||||
- name: Untar
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -xvjf racket3m-macos-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Extend PATH with Racket executable
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: echo "::set-env name=PATH::$PWD/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/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:
|
||||
runs-on: macos-latest
|
||||
|
||||
needs: build-racketcs
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: racketcs-macos-x64_git${{ github.sha }}
|
||||
path: ${{ github.workspace }}
|
||||
- name: Untar
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: tar -xvjf racketcs-macos-x64_git${{ github.sha }}.tar.bz2
|
||||
- name: Extend PATH with Racket executable
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: echo "::set-env name=PATH::$PWD/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/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
|
27
.github/workflows/ci-push_win.yml
vendored
Normal file
27
.github/workflows/ci-push_win.yml
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
name: CI Win
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
|
||||
# Build jobs
|
||||
# These jobs build each Racket component separately and tests on the component start as soon as each
|
||||
# component finishes building.
|
||||
|
||||
build-win:
|
||||
runs-on: windows-latest
|
||||
|
||||
# According to
|
||||
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/software-installed-on-github-hosted-runners#windows-server-2019
|
||||
# VS2019 is what is installed in the hosted runners:
|
||||
# Version: VisualStudio/16.3.6+29418.71
|
||||
# Location: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build
|
||||
working-directory: .\racket\src\worksp
|
||||
shell: cmd
|
||||
run: |
|
||||
call msvcprep.bat x86_amd64
|
||||
call build.bat
|
||||
call ..\..\racket.exe csbuild.rkt -- --recurse-submodules --depth=1
|
Loading…
Reference in New Issue
Block a user