Continuous Integration #159
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
on: | |
push: | |
pull_request: | |
name: Continuous Integration | |
jobs: | |
build: | |
name: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: install elan | |
run: | | |
set -o pipefail | |
curl -sSfL https://github.com/leanprover/elan/releases/download/v3.0.0/elan-x86_64-unknown-linux-gnu.tar.gz | tar xz | |
./elan-init -y --default-toolchain none | |
echo "$HOME/.elan/bin" >> $GITHUB_PATH | |
- uses: actions/checkout@v3 | |
- name: List all files | |
run: | | |
find . -name "*.lean" -type f | |
- name: lean version | |
run: | | |
lean --version | |
- name: Cache .lake | |
uses: actions/cache@v3 | |
with: | |
path: .lake | |
key: ${{ runner.os }}-${{ hashFiles('lake-manifest.json') }}-${{ hashFiles('lean-toolchain') }} | |
- name: Build the project | |
run: | | |
lake build | |
- name: Generate the example website | |
run: | | |
lake exe demosite --output _out/examples/demosite | |
- name: Check internal links on the example website | |
uses: lycheeverse/[email protected] | |
with: | |
format: markdown | |
jobSummary: true | |
args: --base './_out/examples/demosite' --no-progress --offline './_out/examples/demosite/**/*.html' | |
- name: Install Dependencies | |
run: sudo apt update && sudo apt install -y pandoc texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-luatex fonts-dejavu | |
- name: Generate the manual | |
run: | | |
./generate.sh | |
cp _out/tex/main.pdf ./manual.pdf | |
cp -r _out/html-single html-single-page | |
zip -r html-single-page.zip html-single-page | |
- name: Upload PDF to artifact storage | |
if: github.ref != 'refs/heads/main' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "Verso manual (PDF)" | |
path: "manual.pdf" | |
- uses: "marvinpinto/action-automatic-releases@latest" | |
if: github.ref == 'refs/heads/main' | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
automatic_release_tag: "latest" | |
title: "Verso manual (PDF)" | |
files: | | |
manual.pdf | |
- name: Upload HTML to artifact storage | |
if: github.ref != 'refs/heads/main' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "Verso manual (HTML, single-page)" | |
path: "html-single-page.zip" | |
- uses: "marvinpinto/action-automatic-releases@latest" | |
if: github.ref == 'refs/heads/main' | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
automatic_release_tag: "latest" | |
title: "Verso manual (HTML, single-page)" | |
files: | | |
html-single-page.zip |