Initial commit to new CI system based on GitHub Actions (#2916)

Jobs to build CGC, 3m and CS separately on Linux and macOS.
This commit is contained in:
Paulo Matos 2019-11-20 16:56:52 +01:00 committed by GitHub
parent 7e3a8c9a3b
commit 6e63f6a99f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

186
.github/workflows/ci-push.yml vendored Normal file
View File

@ -0,0 +1,186 @@
name: CI
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:
os: [ubuntu-18.04, macos-latest]
cify: [cify, nocify]
runs-on: ${{ matrix.os }}
env:
RACKET_EXTRA_CONFIGURE_ARGS: ""
steps:
- uses: actions/checkout@v1
- 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"
- 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-places
--enable-futures
--enable-float
$CIFY_OPTION
--enable-pthread
--disable-docs
- name: Building
working-directory: ./racket/src
run: |
export cpus=$(grep -c ^processor /proc/cpuinfo)
make CFLAGS="-Werror" -l $cpus -j $((cpus+1))
- name: Installing
working-directory: ./racket/src
run: make -j $((cpus+1)) install
- name: Tarballing
working-directory: ../
run: tar -cvjf racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2 racketcgc
- uses: actions/upload-artifact@master
with:
name: racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}
path: ../racketcgc-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
build-racket3m:
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04, macos-latest]
cify: [cify, nocify]
runs-on: ${{ matrix.os }}
needs: build-racketcgc
env:
RACKET_EXTRA_CONFIGURE_ARGS: ""
steps:
- uses: actions/checkout@v1
- 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"
- name: Setup cify if disabled
if: matrix.cify == 'nocify'
run: echo "::set-env name=CIFY_OPTION::--disable-cify"
- uses: actions/download-artifact@master
with:
name: racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}
path: ../
- name: Untar
working-directory: ../
run: tar -xvjf racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}.tar.bz2
- name: Configuring Racket 3m
working-directory: ./racket/src
run: >
./configure
--prefix=$GITHUB_WORKSPACE/../racket3m
$RACKET_EXTRA_CONFIGURE_ARGS
--enable-racket=$GITHUB_WORKSPACE/../racketcgc/bin/racket
--enable-jit
--enable-foreign
--enable-places
--enable-futures
--enable-float
--disable-docs
$CIFY_OPTION
--enable-pthread
- name: Building
working-directory: ./racket/src
run: |
export cpus=$(grep -c ^processor /proc/cpuinfo)
make CFLAGS="-Werror" -l $cpus -j $((cpus+1))
- name: Installing
working-directory: ./racket/src
run: make -j $((cpus+1)) install
- name: Tarballing
working-directory: ../
run: tar -cvjf racket3m-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha}}.tar.bz2 racket3m
- uses: actions/upload-artifact@master
with:
name: racket3m-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}
path: ../racket3m-${{ matrix.os }}-${{ matrix.cify }}-x64_git${{ github.sha }}.tar.bz2
build-racketcs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04, macos-latest]
runs-on: ${{ matrix.os }}
needs: build-racketcgc
env:
RACKET_EXTRA_CONFIGURE_ARGS: ""
steps:
- uses: actions/checkout@v1
- 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@master
with:
name: racketcgc-${{ matrix.os }}-nocify-x64_git${{ github.sha }}
path: ../
- name: Untar
working-directory: ../
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
- 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
run: >
./configure
--prefix=$GITHUB_WORKSPACE/../racketcs
$RACKET_EXTRA_CONFIGURE_ARGS
--enable-racket=$GITHUB_WORKSPACE/../racketcgc/bin/racket
--enable-compress
--disable-docs
--enable-pthread
--enable-csdefault
--enable-csonly
- name: Building
working-directory: ./racket/src
run: |
export cpus=$(grep -c ^processor /proc/cpuinfo)
make -l $cpus -j $((cpus+1))
- name: Installing
working-directory: ./racket/src
run: make -j $((cpus+1)) install
- name: Tarballing
working-directory: ../
run: tar -cvjf racketcs-${{ matrix.os }}-x64_git${{ github.sha}}.tar.bz2 racketcs
- uses: actions/upload-artifact@master
with:
name: racketcs-${{ matrix.os }}-x64_git${{ github.sha }}
path: ../racketcs-${{ matrix.os }}-x64_git${{ github.sha }}.tar.bz2