Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
132 lines
4.2 KiB
YAML
132 lines
4.2 KiB
YAML
on:
|
|
pull_request:
|
|
types: [opened, synchronize]
|
|
push:
|
|
branches:
|
|
- canary
|
|
|
|
name: Generate Stats
|
|
|
|
concurrency:
|
|
# Keep cancel-on-update behavior for PRs, but allow canary pushes to run independently.
|
|
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
env:
|
|
NAPI_CLI_VERSION: 2.18.4
|
|
TURBO_VERSION: 2.8.11
|
|
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 }}
|