CI #307
This file contains hidden or 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
| name: CI | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| types: [review_requested,reopened,synchronize] | |
| push: | |
| branches: | |
| - 'main' | |
| tags: '*' | |
| check_run: | |
| types: [rerequested] | |
| schedule: | |
| - cron: '0 8 * * 1' # Run at 8:00 AM UTC every Monday | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| permissions: | |
| actions: write | |
| contents: read | |
| jobs: | |
| examples: | |
| name: Examples (Julia - ${{ matrix.version }}) | |
| runs-on: ubuntu-latest | |
| # Set maximum runtime for this job to 30 minutes | |
| timeout-minutes: 60 | |
| strategy: | |
| matrix: | |
| version: | |
| - '1.10' | |
| - '1.11' | |
| - '1.12' | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: ${{ matrix.version }} | |
| - uses: julia-actions/cache@v2 | |
| # Build examples with strict environment checking (fail if env vars missing) | |
| - name: Build examples | |
| env: | |
| JULIA_FASTCHOLESKY_THROW_ERROR_NON_SYMMETRIC: 1 | |
| OPENAI_KEY: ${{ secrets.OPENAI_KEY }} | |
| run: | | |
| julia -e 'using Pkg; Pkg.add("Weave"); Pkg.precompile()' | |
| make examples-setup | |
| make examples STRICT_ENV=true | |
| # Upload examples as artifacts | |
| - uses: actions/upload-artifact@v4 | |
| if: matrix.version == '1.12' # Only upload from the latest Julia version | |
| with: | |
| name: examples-output-${{ github.run_id }} | |
| path: | | |
| docs/src/categories/ | |
| docs/src/autogenerated/ | |
| retention-days: 1 | |
| docs: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| # Set maximum runtime for this job to 15 minutes | |
| timeout-minutes: 15 | |
| needs: examples | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| - uses: julia-actions/cache@v2 | |
| # Download the examples artifacts | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: examples-output-${{ github.run_id }} | |
| path: docs/src/ | |
| - name: Build documentation | |
| run: | | |
| make docs-setup | |
| make docs | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JULIA_FASTCHOLESKY_THROW_ERROR_NON_SYMMETRIC: 1 |