chore(deps): bump the patches group across 1 directory with 21 updates #4979
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
| permissions: | |
| contents: read | |
| name: "CI" | |
| on: | |
| pull_request: | |
| merge_group: | |
| jobs: | |
| # Add pre-job to skip duplicate actions in merge queues | |
| pre-job: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
| timeout-minutes: 15 | |
| steps: | |
| - id: skip_check | |
| uses: fkirc/skip-duplicate-actions@v5 | |
| with: | |
| do_not_skip: '["workflow_dispatch"]' | |
| check_h1: | |
| needs: | |
| - pre-job | |
| if: needs.pre-job.outputs.should_skip != 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Run H1 heading check | |
| run: node scripts/check-h1-headings.js | |
| # check-notebook-docs-sync: | |
| # needs: | |
| # - pre-job | |
| # if: needs.pre-job.outputs.should_skip != 'true' | |
| # runs-on: ubuntu-latest | |
| # timeout-minutes: 15 | |
| # steps: | |
| # - name: Checkout code | |
| # uses: actions/checkout@v4 | |
| # - name: Install uv | |
| # uses: astral-sh/setup-uv@v4 | |
| # with: | |
| # version: "latest" | |
| # - name: Check if notebook docs are up to date | |
| # run: | | |
| # # Run the update script | |
| # bash scripts/update_cookbook_docs.sh | |
| # # Check if any files changed (staged, unstaged, or untracked) | |
| # if [[ -n $(git status --porcelain) ]]; then | |
| # echo "❌ Repository has changes after regenerating cookbook documentation!" | |
| # echo "The following files have changes:" | |
| # git status --porcelain | |
| # echo "" | |
| # echo "Please run 'bash scripts/update_cookbook_docs.sh' locally and commit the changes." | |
| # echo "" | |
| # echo "Detailed diff:" | |
| # git diff | |
| # git diff --staged | |
| # exit 1 | |
| # else | |
| # echo "✅ Repository is up to date after regenerating cookbook documentation" | |
| # fi | |
| build-and-check-links: | |
| needs: | |
| - pre-job | |
| if: needs.pre-job.outputs.should_skip != 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| env: | |
| GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - uses: pnpm/action-setup@v4 | |
| id: pnpm-install | |
| with: | |
| version: 9.5.0 | |
| run_install: false | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - run: pnpm install | |
| - name: Build next.js app | |
| run: pnpm build | |
| - name: Start server and check links | |
| run: | | |
| # Start the server in the background and capture its PID | |
| pnpm start & SERVER_PID=$! | |
| # Wait for the server to be ready (max 30 seconds) | |
| timeout 30 bash -c 'until curl -s http://localhost:3333 > /dev/null; do sleep 1; done' | |
| # Run the link checker | |
| pnpm link-check | |
| # Store the exit code | |
| LINK_CHECK_EXIT=$? | |
| # Kill the server using the captured PID | |
| kill $SERVER_PID || true | |
| # Exit with the link checker's exit code | |
| exit $LINK_CHECK_EXIT | |
| check-sitemap-links: | |
| needs: | |
| - pre-job | |
| if: needs.pre-job.outputs.should_skip != 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| env: | |
| GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - uses: pnpm/action-setup@v4 | |
| id: pnpm-install | |
| with: | |
| version: 9.5.0 | |
| run_install: false | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - run: pnpm install | |
| - name: Build next.js app | |
| run: pnpm build | |
| - name: Start server and check sitemap links | |
| run: | | |
| # Start the server in the background and capture its PID | |
| pnpm start & SERVER_PID=$! | |
| # Wait for the server to be ready (max 30 seconds) | |
| timeout 30 bash -c 'until curl -s http://localhost:3333 > /dev/null; do sleep 1; done' | |
| # Run the sitemap checker | |
| pnpm sitemap-check | |
| # Store the exit code | |
| SITEMAP_CHECK_EXIT=$? | |
| # Kill the server using the captured PID | |
| kill $SERVER_PID || true | |
| # Exit with the sitemap checker's exit code | |
| exit $SITEMAP_CHECK_EXIT | |
| # Summary job that depends on all other jobs | |
| # This allows you to require only this single check in branch protection rules | |
| all-checks-pass: | |
| runs-on: ubuntu-latest | |
| needs: [ | |
| pre-job, | |
| check_h1, | |
| # check-notebook-docs-sync, | |
| build-and-check-links, | |
| check-sitemap-links, | |
| ] | |
| if: always() | |
| steps: | |
| - name: Successful CI | |
| if: ${{ !(contains(needs.*.result, 'failure')) }} | |
| run: exit 0 | |
| working-directory: . | |
| - name: Failing CI | |
| if: ${{ contains(needs.*.result, 'failure') }} | |
| run: exit 1 | |
| working-directory: . |