Cairo Update Check #348
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: Cairo Update Check | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| no_slack: | |
| description: "Skip sending Slack notification on failure" | |
| type: boolean | |
| default: false | |
| schedule: | |
| - cron: "0 0 * * 1-5" | |
| concurrency: | |
| group: ${{ github.workflow }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-test: | |
| name: build tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: software-mansion/setup-scarb@v1 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: nextest@0.9.98 | |
| - name: Build xtasks | |
| run: cargo build -p xtask | |
| - name: Upgrade Cairo to latest main commit | |
| run: | | |
| CAIRO_REV=$(git ls-remote --refs "https://github.com/starkware-libs/cairo" main | awk '{print $1}') | |
| echo "::notice::Checking Cairo commit: https://github.com/starkware-libs/cairo/commit/$CAIRO_REV" | |
| cargo xtask upgrade cairo --rev "$CAIRO_REV" | |
| - name: Upgrade Lint to latest main commit | |
| run: | | |
| LINT_REV=$(git ls-remote --refs "https://github.com/software-mansion/cairo-lint" main | awk '{print $1}') | |
| echo "::notice::Checking Lint commit: https://github.com/software-mansion/cairo-lint/$LINT_REV" | |
| cargo xtask upgrade cairolint --rev "$LINT_REV" | |
| - name: nextest archive | |
| run: cargo nextest archive --workspace --all-features --cargo-profile ci --archive-file 'nextest-archive.tar.zst' | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| name: nextest-archive | |
| path: nextest-archive.tar.zst | |
| test: | |
| name: test ${{ matrix.partition }}/6 | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build-test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| partition: [ 1, 2, 3, 4, 5, 6 ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: software-mansion/setup-scarb@v1 | |
| with: | |
| scarb-version: nightly | |
| cache: false | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: nextest@0.9.98 | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| name: nextest-archive | |
| - name: nextest partition ${{ matrix.partition }}/6 | |
| run: cargo nextest run --profile ci --partition 'count:${{ matrix.partition }}/6' --archive-file 'nextest-archive.tar.zst' | |
| notify_failed: | |
| runs-on: ubuntu-latest | |
| if: failure() && !(inputs.no_slack) | |
| needs: [ build-test, test ] | |
| steps: | |
| - name: Notify the team about workflow failure | |
| uses: slackapi/slack-github-action@v2.1.1 | |
| with: | |
| webhook: ${{ secrets.SLACK_CAIRO_UPDATE_CHECK_FAILURE_WEBHOOK_URL }} | |
| webhook-type: webhook-trigger | |
| payload: | | |
| url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" |