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