Nightly #2
Workflow file for this run
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: Nightly | |
| # Exhaustive run on a schedule: the full matrix with the xfail sweeps and | |
| # valgrind on every Linux cell, against the pinned CppInterOp (reusable | |
| # default). On any failure a tracking issue is opened/updated. To track | |
| # upstream drift, add a cell with `cppinterop-ref: main`; it builds CppJIT | |
| # against CppInterOp's tip and goes red when that API drifts ahead of the | |
| # synced forks -- the signal that the next fork re-sync is due. | |
| on: | |
| schedule: | |
| - cron: '30 2 * * *' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: nightly-${{ github.workflow }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-test: | |
| name: ${{ matrix.os }}/llvm${{ matrix.llvm }}/py${{ matrix.py }}/c++${{ matrix.cxx }}${{ matrix.vg && '/vg' || '' }}${{ matrix.flavor == 'cling' && '/cling' || '' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Superset of the PR matrix + breadth (py 3.12/3.13, C++17, LLVM 20, arm) | |
| # and one cling cell. valgrind only on LLVM 21 cells: vendored etc/ has | |
| # clang21 supps only, so other majors would surface unsuppressed noise. | |
| include: | |
| - { os: ubuntu-24.04, llvm: '20', flavor: system, py: '3.12', cxx: '17' } | |
| - { os: ubuntu-24.04, llvm: '21', flavor: system, py: '3.13', cxx: '20', vg: true } | |
| - { os: ubuntu-24.04, llvm: '21', flavor: system, py: '3.14', cxx: '20', vg: true } | |
| - { os: ubuntu-24.04, llvm: '22', flavor: '', py: '3.14', cxx: '20' } | |
| - { os: ubuntu-24.04, llvm: '21', flavor: system, py: '3.12', cxx: '20', vg: true } | |
| - { os: ubuntu-24.04-arm, llvm: '21', flavor: system, py: '3.13', cxx: '20', vg: true } | |
| - { os: ubuntu-24.04-arm, llvm: '20', flavor: system, py: '3.12', cxx: '17' } | |
| - { os: macos-26, llvm: '21', flavor: system, py: '3.12', cxx: '20' } | |
| - { os: macos-26-intel, llvm: '21', flavor: system, py: '3.12', cxx: '20' } | |
| # cling backend, against the cached llvm-root (cling-llvm20) recipe cell. | |
| - { os: ubuntu-24.04, llvm: '20', flavor: cling, flavor_version: cling-llvm20, py: '3.13', cxx: '20' } | |
| uses: compiler-research/ci-workflows/.github/workflows/cppjit.yml@main | |
| with: | |
| # For upstream-drift detection, set cppinterop-ref: main here. | |
| os: ${{ matrix.os }} | |
| llvm-version: ${{ matrix.llvm }} | |
| llvm-flavor: ${{ matrix.flavor }} | |
| llvm-flavor-version: ${{ matrix.flavor_version || '' }} | |
| python-version: ${{ matrix.py }} | |
| cxx-standard: ${{ matrix.cxx }} | |
| valgrind: ${{ matrix.vg || false }} | |
| run-xfail-crashing-tests: true | |
| drift-issue: | |
| needs: build-test | |
| if: ${{ always() && needs.build-test.result == 'failure' }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| issues: write | |
| steps: | |
| - uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const marker = '<!-- cppjit-nightly-drift -->'; | |
| const run = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; | |
| const body = [ | |
| marker, | |
| '## Nightly build/test failed', | |
| '', | |
| `The scheduled nightly run failed (CppJIT \`master\`, pinned CppInterOp).`, | |
| `Investigate the failing cell; a persistent failure may mean a fork re-sync is due.`, | |
| '', | |
| `Run: ${run}`, | |
| `Date: ${new Date().toISOString()}`, | |
| ].join('\n'); | |
| const existing = await github.paginate(github.rest.issues.listForRepo, { | |
| ...context.repo, state: 'open', labels: 'nightly-drift', | |
| }); | |
| const hit = existing.find(i => (i.body || '').startsWith(marker)); | |
| if (hit) { | |
| await github.rest.issues.createComment({ ...context.repo, issue_number: hit.number, body }); | |
| } else { | |
| await github.rest.issues.create({ | |
| ...context.repo, | |
| title: 'Nightly: CppJIT build/test failing', | |
| labels: ['nightly-drift'], | |
| body, | |
| }); | |
| } |