[ ci ] just dump everything into a single file already (#1645)

This commit is contained in:
G. Allais 2021-06-29 19:42:48 +01:00 committed by GitHub
parent a1ae5148b6
commit 168a69bdcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 198 additions and 276 deletions

View File

@ -1,26 +1,33 @@
name: Ubuntu Combined name: Idris2
on: on:
workflow_run: push:
workflows: ["Quick check"] branches:
types: - '*'
- completed tags:
- '*'
pull_request:
branches:
- master
- main
env: env:
IDRIS2_VERSION: 0.4.0 # For previous-version build IDRIS2_VERSION: 0.4.0 # For previous-version build
SCHEME: scheme
jobs: jobs:
# ######################################################################
# Boostrapping and Previous Version Builds # Build from the previous version
# # We perform this check before all the other ones because:
# 1. It is fast
# 2. If it fails then there is no point in trying the rest
######################################################################
build-bootstrap-chez: quick-check:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IDRIS2_CG: chez IDRIS2_CG: chez
SCHEME: scheme
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -30,48 +37,9 @@ jobs:
sudo apt-get update sudo apt-get update
sudo apt-get install -y -t hirsute chezscheme sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH 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: # Get our hands on the released version either by using the cache
if: ${{ github.event.workflow_run.conclusion == 'success' }} # or by rebuilding it if necessary.
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 - name: Cache Chez Previous Version
id: previous-version-cache id: previous-version-cache
uses: actions/cache@v2 uses: actions/cache@v2
@ -91,28 +59,157 @@ jobs:
cd Idris2-$IDRIS2_VERSION cd Idris2-$IDRIS2_VERSION
make install make install
cd .. cd ..
- name: Artifact Idris2
# Build the current version and save the installation.
- name: Build current version
run: |
make && make install
- name: Artifact Idris2 from previous version
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: installed-idris2-${{ env.IDRIS2_VERSION }}-chez name: ubuntu-installed-idris2-${{ env.IDRIS2_VERSION }}-chez
path: ~/.idris2/ path: ~/.idris2/
# ######################################################################
# Self Hosting and Testing # Bootstrapping builds
# ######################################################################
self-host-chez: # CHEZ
needs: build-bootstrap-chez
ubuntu-bootstrap-chez:
needs: quick-check
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IDRIS2_CG: chez IDRIS2_CG: chez
SCHEME: scheme
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: ubuntu-installed-bootstrapped-idris2-chez
path: ~/.idris2/
macos-bootstrap-chez:
needs: quick-check
runs-on: macos-latest
env:
SCHEME: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
brew install chezscheme
brew install coreutils
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
- name: Build Idris 2 from bootstrap
run: make bootstrap && make install
shell: bash
- name: Artifact Bootstrapped Idris2
uses: actions/upload-artifact@v2
with:
name: macos-installed-bootstrapped-idris2-chez
path: ~/.idris2/
windows-bootstrap-chez:
needs: quick-check
runs-on: windows-latest
env:
MSYSTEM: MINGW64
MSYS2_PATH_TYPE: inherit
SCHEME: scheme
CC: gcc
steps:
- name: Init
run: |
git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v2
- name: Get Chez Scheme
run: |
git clone --depth 1 https://github.com/cisco/ChezScheme
c:\msys64\usr\bin\bash -l -c "pacman -S --noconfirm tar make"
echo "PWD=$(c:\msys64\usr\bin\cygpath -u $(pwd))" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Configure and Build Chez Scheme
run: |
c:\msys64\usr\bin\bash -l -c "cd $env:PWD && cd ChezScheme && ./configure --threads && make"
- name: Set Path
run: |
$chez="$(pwd)\ChezScheme\ta6nt\bin\ta6nt"
$idris="$(pwd)\.idris2"
echo "$chez" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "$idris\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "IDRIS_PREFIX=$idris" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "PREFIX=$(c:\msys64\usr\bin\cygpath -u $idris)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Test Scheme
run: |
scheme --version
- name: Bootstrap and install
run: c:\msys64\usr\bin\bash -l -c "cd $env:PWD && make bootstrap && make bootstrap-test && make install"
nix-bootstrap-chez:
needs: quick-check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v12
with:
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210126_f15f0b8/install
- run: nix-build -A checks.x86_64-linux
# RACKET
ubuntu-bootstrap-racket:
needs: quick-check
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: ubuntu-installed-bootstrapped-idris2-racket
path: ~/.idris2/
######################################################################
# Self-hosting builds and testing
######################################################################
# CHEZ
ubuntu-self-host-chez:
needs: ubuntu-bootstrap-chez
runs-on: ubuntu-latest
env:
IDRIS2_CG: chez
SCHEME: scheme
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Download Idris2 Artifact - name: Download Idris2 Artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: installed-bootstrapped-idris2-chez name: ubuntu-installed-bootstrapped-idris2-chez
path: ~/.idris2/ path: ~/.idris2/
- name: Install build dependencies - name: Install build dependencies
run: | run: |
@ -126,8 +223,36 @@ jobs:
- name: Test self-hosted - name: Test self-hosted
run: make test INTERACTIVE='' run: make test INTERACTIVE=''
self-host-racket: macos-self-host-chez:
needs: build-bootstrap-racket needs: macos-bootstrap-chez
runs-on: macos-latest
env:
SCHEME: chez
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Idris2 Artifact
uses: actions/download-artifact@v2
with:
name: macos-installed-bootstrapped-idris2-chez
path: ~/.idris2/
- name: Install build dependencies
run: |
brew install chezscheme
brew install coreutils
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
shell: bash
- name: Test self-hosted
run: make test INTERACTIVE=''
shell: bash
# RACKET
ubuntu-self-host-racket:
needs: ubuntu-bootstrap-racket
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IDRIS2_CG: racket IDRIS2_CG: racket
@ -137,7 +262,7 @@ jobs:
- name: Download Idris2 Artifact - name: Download Idris2 Artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: installed-bootstrapped-idris2-racket name: ubuntu-installed-bootstrapped-idris2-racket
path: ~/.idris2/ path: ~/.idris2/
- name: Install build dependencies - name: Install build dependencies
run: | run: |
@ -149,8 +274,8 @@ jobs:
- name: Test self-hosted - name: Test self-hosted
run: make test INTERACTIVE='' run: make test INTERACTIVE=''
self-host-previous-version: ubuntu-self-host-previous-version:
needs: build-previous-version needs: quick-check
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IDRIS2_CG: chez IDRIS2_CG: chez
@ -160,7 +285,7 @@ jobs:
- name: Download Idris2 Artifact - name: Download Idris2 Artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: installed-idris2-${{ env.IDRIS2_VERSION }}-chez name: ubuntu-installed-idris2-${{ env.IDRIS2_VERSION }}-chez
path: ~/.idris2/ path: ~/.idris2/
- name: Install build dependencies - name: Install build dependencies
run: | run: |
@ -169,8 +294,6 @@ jobs:
sudo apt-get install -y -t hirsute chezscheme sudo apt-get install -y -t hirsute chezscheme
echo "$HOME/.idris2/bin" >> $GITHUB_PATH echo "$HOME/.idris2/bin" >> $GITHUB_PATH
chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/* 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 - name: Build self-hosted from previous version
run: make all IDRIS2_BOOT="idris2 -Werror" && make install run: make all IDRIS2_BOOT="idris2 -Werror" && make install
- name: Test self-hosted from previous version - name: Test self-hosted from previous version
@ -181,8 +304,12 @@ jobs:
name: idris2-nightly-chez name: idris2-nightly-chez
path: ~/.idris2/ path: ~/.idris2/
build-api: ######################################################################
needs: build-bootstrap-chez # Ubuntu API
######################################################################
ubuntu-build-api:
needs: ubuntu-bootstrap-chez
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IDRIS2_CG: chez IDRIS2_CG: chez
@ -192,7 +319,7 @@ jobs:
- name: Download Idris2 Artifact - name: Download Idris2 Artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: installed-bootstrapped-idris2-chez name: ubuntu-installed-bootstrapped-idris2-chez
path: ~/.idris2/ path: ~/.idris2/
- name: Install build dependencies - name: Install build dependencies
run: | run: |

View File

@ -1,86 +0,0 @@
name: macOS Combined Chez
on:
workflow_run:
workflows: ["Quick check"]
types:
- completed
env:
SCHEME: chez
jobs:
# Building the executable
build-bootstrap-chez:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
brew install chezscheme
brew install coreutils
echo "$HOME/.idris2/bin" >> $GITHUB_PATH
- name: Build Idris 2 from bootstrap
run: make bootstrap && make install
shell: bash
- name: Artifact Bootstrapped Idris2
uses: actions/upload-artifact@v2
with:
name: installed-bootstrapped-idris2-chez
path: ~/.idris2/
# self hosting and testing
self-host-chez:
needs: build-bootstrap-chez
runs-on: macos-latest
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: |
brew install chezscheme
brew install coreutils
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
shell: bash
- name: Test self-hosted
run: make test INTERACTIVE=''
shell: bash
# this gambit test is really slow so se run it separately
# test-gambit:
# needs: build-bootstrap-chez
# runs-on: macos-latest
# 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: |
# brew install chezscheme
# brew install coreutils
# brew install gambit-scheme
# CURRENTDIR=$(find /usr/local/Cellar/gambit-scheme -type l -name current)
# echo "::add-path::${CURRENTDIR}/bin"
# echo "$HOME/.idris2/bin" >> $GITHUB_PATH
# chmod +x $HOME/.idris2/bin/idris2 $HOME/.idris2/bin/idris2_app/*
# - name: Test gambit
# run: cd tests/gambit/bitops001/ && ./run idris2
# shell: bash

View File

@ -1,20 +0,0 @@
name: Nix
on:
workflow_run:
workflows: ["Quick check"]
types:
- completed
jobs:
tests:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v12
with:
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210126_f15f0b8/install
- run: nix-build -A checks.x86_64-linux

View File

@ -1,54 +0,0 @@
name: Quick check
on:
push:
branches:
- '*'
tags:
- '*'
pull_request:
branches:
- master
- main
env:
IDRIS2_VERSION: 0.4.0 # For previous-version build
SCHEME: scheme
jobs:
from-cached-bootstrap:
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: Build current version
run: |
make

View File

@ -1,45 +0,0 @@
name: Windows
on:
workflow_run:
workflows: ["Quick check"]
types:
- completed
env:
MSYSTEM: MINGW64
MSYS2_PATH_TYPE: inherit
SCHEME: scheme
CC: gcc
jobs:
build:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: windows-latest
steps:
- name: Init
run: |
git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v2
- name: Get Chez Scheme
run: |
git clone --depth 1 https://github.com/cisco/ChezScheme
c:\msys64\usr\bin\bash -l -c "pacman -S --noconfirm tar make"
echo "PWD=$(c:\msys64\usr\bin\cygpath -u $(pwd))" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Configure and Build Chez Scheme
run: |
c:\msys64\usr\bin\bash -l -c "cd $env:PWD && cd ChezScheme && ./configure --threads && make"
- name: Set Path
run: |
$chez="$(pwd)\ChezScheme\ta6nt\bin\ta6nt"
$idris="$(pwd)\.idris2"
echo "$chez" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "$idris\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "IDRIS_PREFIX=$idris" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "PREFIX=$(c:\msys64\usr\bin\cygpath -u $idris)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Test Scheme
run: |
scheme --version
- name: Bootstrap and install
run: c:\msys64\usr\bin\bash -l -c "cd $env:PWD && make bootstrap && make bootstrap-test && make install"