name: Build physicslib4 on: push: branches: - main paths: - '**/*.lean' - 'lean-toolchain' - 'lakefile.toml' - 'lake-manifest.json' pull_request: branches: - main paths: - '**/*.lean' - 'lean-toolchain' - 'lakefile.toml' - 'lake-manifest.json' workflow_dispatch: # Allow manual triggering of the workflow from the GitHub Actions interface # Cancel previous runs if a new commit is pushed to the same PR or branch concurrency: group: ${{ github.ref }} # Group runs by the ref (branch or PR) cancel-in-progress: true # Cancel any ongoing runs in the same group # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages and modify PR labels permissions: contents: read # Read access to repository contents pages: write # Write access to GitHub Pages id-token: write # Write access to ID tokens jobs: build_project: runs-on: ubuntu-latest name: Build project steps: - name: Checkout project uses: actions/checkout@v5 with: fetch-depth: 0 # Fetch all history for all branches and tags - name: Install and configure Lean, and get mathlib cache uses: leanprover/lean-action@434f25c2f80ded67bba02502ad3a86f25db50709 # v1.3.0 with: auto-config: false use-github-cache: false use-mathlib-cache: true - name: "Check that physicslib4.lean is up to date" run: | ~/.elan/bin/lake exe mk_all --check || echo "ERROR: please ensure that physicslib4.lean is up to date, for instance by running lake exe mk_all" - name: Cache build artifacts uses: actions/cache@v4 with: path: .lake/build key: LakeBuild-${{ runner.os }}-${{ hashFiles('lean-toolchain') }}-${{ hashFiles('lake-manifest.json') }} restore-keys: LakeBuild- - name: Build project run: ~/.elan/bin/lake build physicslib4