Idris2/.github/workflows/ci-ubuntu-combined.yml
2021-06-29 11:36:22 +01:00

210 lines
6.7 KiB
YAML

name: Ubuntu Combined
on:
workflow_run:
workflows: ["Quick check"]
types:
- completed
env:
IDRIS2_VERSION: 0.4.0 # For previous-version build
SCHEME: scheme
jobs:
#
# Boostrapping and Previous Version Builds
#
build-bootstrap-chez:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
echo "deb http://security.ubuntu.com/ubuntu hirsute universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
- name: Build from bootstrap
run: make bootstrap && make install
- name: Artifact Bootstrapped Idris2
uses: actions/upload-artifact@v2
with:
name: installed-bootstrapped-idris2-chez
path: ~/.idris2/
build-bootstrap-racket:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
env:
IDRIS2_CG: racket
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
sudo apt-get install -y racket
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
- name: Build from bootstrap
run: make bootstrap-racket && make install
- name: Artifact Bootstrapped Idris2
uses: actions/upload-artifact@v2
with:
name: installed-bootstrapped-idris2-racket
path: ~/.idris2/
build-previous-version:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
echo "deb http://security.ubuntu.com/ubuntu hirsute universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
- name: Cache Chez Previous Version
id: previous-version-cache
uses: actions/cache@v2
with:
path: Idris2-${{ env.IDRIS2_VERSION }}
key: ${{ runner.os }}-idris2-bootstrapped-hirsute-chez-${{ env.IDRIS2_VERSION }}
- name : Build previous version
if: steps.previous-version-cache.outputs.cache-hit != 'true'
run: |
wget https://www.idris-lang.org/idris2-src/idris2-$IDRIS2_VERSION.tgz
tar zxvf idris2-$IDRIS2_VERSION.tgz
cd Idris2-$IDRIS2_VERSION
make bootstrap
cd ..
- name: Install previous version
run: |
cd Idris2-$IDRIS2_VERSION
make install
cd ..
- name: Artifact Idris2
uses: actions/upload-artifact@v2
with:
name: installed-idris2-${{ env.IDRIS2_VERSION }}-chez
path: ~/.idris2/
#
# Self Hosting and Testing
#
self-host-chez:
needs: build-bootstrap-chez
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Idris2 Artifact
uses: actions/download-artifact@v2
with:
name: installed-bootstrapped-idris2-chez
path: ~/.idris2/
- name: Install build dependencies
run: |
echo "deb http://security.ubuntu.com/ubuntu hirsute universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/*
- name: Build self-hosted
run: make all IDRIS2_BOOT="idris2 -Werror" && make install
- name: Test self-hosted
run: make test INTERACTIVE=''
self-host-racket:
needs: build-bootstrap-racket
runs-on: ubuntu-latest
env:
IDRIS2_CG: racket
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Idris2 Artifact
uses: actions/download-artifact@v2
with:
name: installed-bootstrapped-idris2-racket
path: ~/.idris2/
- name: Install build dependencies
run: |
sudo apt-get install -y racket
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/*
- name: Build self-hosted
run: make all IDRIS2_BOOT="idris2 -Werror" && make install
- name: Test self-hosted
run: make test INTERACTIVE=''
self-host-previous-version:
needs: build-previous-version
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Idris2 Artifact
uses: actions/download-artifact@v2
with:
name: installed-idris2-${{ env.IDRIS2_VERSION }}-chez
path: ~/.idris2/
- name: Install build dependencies
run: |
echo "deb http://security.ubuntu.com/ubuntu hirsute universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/*
- name: Build from previous version
run: make all && make install && make clean
- name: Build self-hosted from previous version
run: make all IDRIS2_BOOT="idris2 -Werror" && make install
- name: Test self-hosted from previous version
run: make test INTERACTIVE=''
- name: Artifact Idris2
uses: actions/upload-artifact@v2
with:
name: idris2-nightly-chez
path: ~/.idris2/
build-api:
needs: build-bootstrap-chez
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Idris2 Artifact
uses: actions/download-artifact@v2
with:
name: installed-bootstrapped-idris2-chez
path: ~/.idris2/
- name: Install build dependencies
run: |
echo "deb http://security.ubuntu.com/ubuntu hirsute universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/*
- name: Build API
run: make install-api
shell: bash
- name: Test API
run: cd tests/idris2/api001 && ./run idris2
shell: bash