firecrown-nightly #42
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
| # Nightly CI - Multi-Branch Scheduled Testing | |
| # ============================================ | |
| # Runs the full CI pipeline once per night against every supported | |
| # long-lived branch. The job definitions live exclusively in | |
| # ci-reusable.yml; this file only declares the schedule. | |
| # | |
| # The list of branches to test is read at runtime from | |
| # .github/ci-branches.json — the single source of truth shared | |
| # with ci.yml. | |
| # | |
| # ADDING OR REMOVING A SUPPORTED BRANCH: | |
| # Edit .github/ci-branches.json only. No changes to this file are needed. | |
| # | |
| # NOTE: GitHub always executes scheduled workflows from the repository's | |
| # default branch (master). The 'ref' input to ci-reusable.yml overrides | |
| # which branch's code is actually checked out and tested. | |
| name: firecrown-nightly | |
| on: | |
| schedule: | |
| - cron: "47 1 * * *" | |
| # Allow manual triggering for testing this workflow itself. | |
| workflow_dispatch: | |
| jobs: | |
| load-branches: | |
| name: Load supported branch list | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.load.outputs.matrix }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Read ci-branches.json | |
| id: load | |
| run: echo "matrix=$(cat .github/ci-branches.json)" >> $GITHUB_OUTPUT | |
| shell: bash | |
| nightly: | |
| name: Nightly (${{ matrix.branch }}) | |
| needs: [load-branches] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| branch: ${{ fromJson(needs.load-branches.outputs.matrix) }} | |
| uses: ./.github/workflows/ci-reusable.yml | |
| with: | |
| ref: ${{ matrix.branch }} | |
| ci_mode: nightly | |
| secrets: inherit | |
| rebuild-drift-linux: | |
| name: Rebuild drift Linux (${{ matrix.branch }}) | |
| needs: [load-branches] | |
| continue-on-error: true | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| branch: ${{ fromJson(needs.load-branches.outputs.matrix) }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.branch }} | |
| - name: Setting up Miniforge | |
| uses: conda-incubator/setup-miniconda@v4 | |
| with: | |
| miniforge-version: latest | |
| python-version: "3.12" | |
| activate-environment: firecrown_developer | |
| auto-activate: true | |
| conda-remove-defaults: true | |
| use-mamba: false | |
| - name: Rebuild environment from environment.yml | |
| shell: bash -l {0} | |
| run: | | |
| set -o pipefail | |
| python .github/update_ci.py 3.12 | |
| conda deactivate | |
| conda env remove --name firecrown_developer -y -q || true | |
| conda env create --file env_tmp.yml --name firecrown_developer -v -q 2>&1 | tee rebuild-drift.log | |
| - name: Summarize drift failure | |
| if: ${{ failure() }} | |
| shell: bash | |
| run: | | |
| { | |
| echo "## Rebuild Drift Failure (Linux)" | |
| echo "" | |
| echo "Branch: ${{ matrix.branch }}" | |
| echo "OS: ubuntu-latest" | |
| echo "Python: 3.12" | |
| echo "" | |
| echo "See artifact: rebuild-drift-log-linux-${{ matrix.branch }}" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload drift log | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rebuild-drift-log-linux-${{ matrix.branch }} | |
| path: rebuild-drift.log | |
| rebuild-drift-macos: | |
| name: Rebuild drift macOS (${{ matrix.branch }}) | |
| needs: [load-branches] | |
| continue-on-error: true | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| branch: ${{ fromJson(needs.load-branches.outputs.matrix) }} | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.branch }} | |
| - name: Setting up Miniforge | |
| uses: conda-incubator/setup-miniconda@v4 | |
| with: | |
| miniforge-version: latest | |
| python-version: "3.12" | |
| activate-environment: firecrown_developer | |
| auto-activate: true | |
| conda-remove-defaults: true | |
| use-mamba: false | |
| - name: Rebuild environment from environment.yml | |
| shell: bash -l {0} | |
| run: | | |
| set -o pipefail | |
| python .github/update_ci.py 3.12 | |
| conda deactivate | |
| conda env remove --name firecrown_developer -y -q || true | |
| conda env create --file env_tmp.yml --name firecrown_developer -v -q 2>&1 | tee rebuild-drift.log | |
| - name: Summarize drift failure | |
| if: ${{ failure() }} | |
| shell: bash | |
| run: | | |
| { | |
| echo "## Rebuild Drift Failure (macOS)" | |
| echo "" | |
| echo "Branch: ${{ matrix.branch }}" | |
| echo "OS: macos-latest" | |
| echo "Python: 3.12" | |
| echo "" | |
| echo "See artifact: rebuild-drift-log-macos-${{ matrix.branch }}" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload drift log | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rebuild-drift-log-macos-${{ matrix.branch }} | |
| path: rebuild-drift.log |