|
| 1 | +--- |
| 2 | +# Runs on a nightly schedule (and optionally via manual dispatch). |
| 3 | +# |
| 4 | +# Executes the full CI matrix: stability (latest tags) and frontier |
| 5 | +# (latest branches). Both runs file GitHub issues with their results |
| 6 | +# unless manually suppressed via workflow_dispatch inputs. |
| 7 | + |
| 8 | +name: CI (Nightly) |
| 9 | + |
| 10 | +on: |
| 11 | + schedule: |
| 12 | + # Nightly at 03:00 UTC |
| 13 | + - cron: '0 3 * * *' |
| 14 | + workflow_dispatch: |
| 15 | + inputs: |
| 16 | + reporting: |
| 17 | + description: 'Create GitHub issue with scenario report' |
| 18 | + type: boolean |
| 19 | + default: false |
| 20 | + skip_report_on_pass: |
| 21 | + description: 'Skip filing issue when all scenarios pass' |
| 22 | + type: boolean |
| 23 | + default: true |
| 24 | + |
| 25 | +jobs: |
| 26 | + foc-devnet-test: |
| 27 | + strategy: |
| 28 | + fail-fast: false |
| 29 | + max-parallel: 1 |
| 30 | + matrix: |
| 31 | + include: |
| 32 | + - name: stability |
| 33 | + init_flags: "--curio latesttag:pdpv0 --filecoin-services latesttag:main" |
| 34 | + issue_label: scenarios-run-stability |
| 35 | + issue_title: "FOC Devnet scenarios run report (stability)" |
| 36 | + - name: frontier |
| 37 | + init_flags: "--curio gitbranch:pdpv0 --filecoin-services gitbranch:main" |
| 38 | + issue_label: scenarios-run-frontier |
| 39 | + issue_title: "FOC Devnet scenarios run report (frontier)" |
| 40 | + uses: ./.github/workflows/ci_run.yml |
| 41 | + with: |
| 42 | + name: ${{ matrix.name }} |
| 43 | + init_flags: ${{ matrix.init_flags }} |
| 44 | + # Reporting is always on for scheduled runs; for manual dispatch it follows the input. |
| 45 | + enable_reporting: ${{ github.event_name == 'schedule' || inputs.reporting == true }} |
| 46 | + # On scheduled runs, such as nightly `inputs.skip_report_on_pass` is absent (empty string), so we cannot rely |
| 47 | + # on it directly. The LHS of || short-circuits to true for any non-dispatch trigger, giving |
| 48 | + # the desired default (skip on pass). For workflow_dispatch the LHS is false, so the user's |
| 49 | + # choice in inputs.skip_report_on_pass takes effect. |
| 50 | + skip_report_on_pass: ${{ github.event_name != 'workflow_dispatch' || inputs.skip_report_on_pass }} |
| 51 | + issue_label: ${{ matrix.issue_label }} |
| 52 | + issue_title: ${{ matrix.issue_title }} |
| 53 | + secrets: inherit |
0 commit comments