Replace flight navigation build id field with header #123513
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
| on: | |
| pull_request: | |
| types: [opened, synchronize] | |
| push: | |
| branches: | |
| - canary | |
| name: Generate Stats | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| NAPI_CLI_VERSION: 2.18.4 | |
| TURBO_VERSION: 2.5.5 | |
| NODE_LTS_VERSION: 20 | |
| TEST_CONCURRENCY: 6 | |
| TURBO_TEAM: 'vercel' | |
| TURBO_CACHE: 'remote:rw' | |
| NEXT_TELEMETRY_DISABLED: 1 | |
| # we build a dev binary for use in CI so skip downloading | |
| # canary next-swc binaries in the monorepo | |
| NEXT_SKIP_NATIVE_POSTINSTALL: 1 | |
| # Vercel KV Store for test timings | |
| KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }} | |
| KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }} | |
| NEXT_TEST_JOB: 1 | |
| NEXT_DISABLE_SWC_WASM: 1 | |
| jobs: | |
| build: | |
| uses: ./.github/workflows/build_reusable.yml | |
| secrets: inherit | |
| with: | |
| stepName: 'generate-pull-request-stats' | |
| uploadSwcArtifact: 'yes' | |
| uploadAnalyzerArtifacts: 'yes' | |
| stats: | |
| name: Stats (${{ matrix.bundler }}) | |
| needs: build | |
| timeout-minutes: 25 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| bundler: [webpack, turbopack] | |
| runs-on: | |
| - 'self-hosted' | |
| - 'linux' | |
| - 'x64' | |
| - 'metal' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 25 | |
| - name: Check non-docs only change | |
| run: echo "DOCS_CHANGE<<EOF" >> $GITHUB_OUTPUT; echo "$(node scripts/run-for-change.mjs --not --type docs --exec echo 'nope')" >> $GITHUB_OUTPUT; echo 'EOF' >> $GITHUB_OUTPUT | |
| id: docs-change | |
| - uses: actions/download-artifact@v4 | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| with: | |
| name: next-swc-binary | |
| path: packages/next-swc/native | |
| - run: cp -r packages/next-swc/native .github/actions/next-stats-action/native | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| - uses: ./.github/actions/next-stats-action | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| with: | |
| bundler: ${{ matrix.bundler }} | |
| env: | |
| PR_STATS_COMMENT_TOKEN: ${{ secrets.PR_STATS_COMMENT_TOKEN }} | |
| TURBO_TEAM: ${{ env.TURBO_TEAM }} | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_CACHE: ${{ env.TURBO_CACHE }} | |
| - name: Upload stats results | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: pr-stats-${{ matrix.bundler }} | |
| path: pr-stats-${{ matrix.bundler }}.json | |
| retention-days: 1 | |
| stats-aggregate: | |
| name: Aggregate Stats | |
| needs: stats | |
| if: always() && needs.stats.result != 'cancelled' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 25 | |
| - name: Check non-docs only change | |
| run: echo "DOCS_CHANGE<<EOF" >> $GITHUB_OUTPUT; echo "$(node scripts/run-for-change.mjs --not --type docs --exec echo 'nope')" >> $GITHUB_OUTPUT; echo 'EOF' >> $GITHUB_OUTPUT | |
| id: docs-change | |
| - name: Download all stats artifacts | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: pr-stats-* | |
| path: stats-results | |
| merge-multiple: true | |
| - name: Setup Node.js | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_LTS_VERSION }} | |
| - name: Install dependencies | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| working-directory: .github/actions/next-stats-action | |
| run: npm install | |
| - name: Aggregate and post results | |
| if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} | |
| working-directory: .github/actions/next-stats-action | |
| run: node src/aggregate-results.js ${{ github.workspace }}/stats-results | |
| env: | |
| PR_STATS_COMMENT_TOKEN: ${{ secrets.PR_STATS_COMMENT_TOKEN }} | |
| KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }} | |
| KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }} |