Modifying the conditions in which ci workflow is run #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file was modified from ProofWidgets4's build.yml code | |
on: | |
push: | |
pull_request: | |
name: ci | |
jobs: | |
build: | |
name: ${{ matrix.name }} | |
if: github.ref_type == 'tag' | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.shell || 'sh' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Build on Ubuntu | |
os: ubuntu-latest | |
lean_os: linux | |
- name: Build on macOS | |
os: macos-latest | |
lean_os: macOS | |
- name: Build on Windows | |
os: windows-latest | |
lean_os: windows | |
shell: msys2 {0} | |
steps: | |
- name: Install MSYS2 (Windows) | |
if: matrix.os == 'windows-latest' | |
uses: msys2/setup-msys2@v2 | |
with: | |
path-type: inherit | |
install: curl unzip | |
- name: Install elan | |
shell: bash | |
run: | | |
curl -sSfLO https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh | |
chmod +x elan-init.sh | |
./elan-init.sh -y --default-toolchain none | |
echo "$HOME/.elan/bin" >> $GITHUB_PATH | |
- uses: actions/checkout@v4 | |
- name: Build package | |
run: lake build | |
- name: Create release for tag | |
if: github.ref_type == 'tag' | |
uses: softprops/action-gh-release@v1 | |
# TODO: replace with just `lake upload $RELEASE_TAG` when lean4#2713 is fixed | |
# References: | |
# https://docs.github.com/en/actions/learn-github-actions/contexts#runner-context | |
# https://stackoverflow.com/questions/8766730/tar-command-in-mac-os-x-adding-hidden-files-why | |
- name: Upload release archive | |
if: github.ref_type == 'tag' | |
# All our runners are 64-bit ¯\_(ツ)_/¯ | |
run: | | |
export COPYFILE_DISABLE=true | |
tar -c -z -f ./${LEAN_OS}-64.tar.gz -C ./build . | |
gh release upload ${RELEASE_TAG} ./${LEAN_OS}-64.tar.gz | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_TAG: ${{ github.ref_name }} | |
LEAN_OS: ${{ matrix.lean_os }} | |