mirror of
https://github.com/idris-lang/Idris2.git
synced 2025-01-05 15:08:00 +03:00
210 lines
6.7 KiB
YAML
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
|