trigger: # Only run latest commit for branches: batch: true # Do not run Azure CI for docs-only/example-only changes: paths: include: - '*' exclude: - bench - docs - errors - examples # Do not run Azure on `canary`, `main`, or release tags. This unnecessarily # increases the backlog, and the change was already tested on the PR. branches: include: - '*' exclude: - canary - main - refs/tags/* pr: # Do not run Azure CI for docs-only/example-only changes: paths: include: - '*' exclude: - bench - docs - errors - examples variables: PNPM_CACHE_FOLDER: $(Pipeline.Workspace)/.pnpm-store NEXT_TELEMETRY_DISABLED: '1' node_version: ^18.17.0 stages: - stage: Test jobs: - job: test_integration pool: vmImage: 'windows-2019' steps: - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: 'Install Node.js' - bash: | node scripts/run-for-change.js --not --type docs --exec echo "##vso[task.setvariable variable=isDocsOnly]No" displayName: 'Check Docs Only Change' - script: corepack enable condition: eq(variables['isDocsOnly'], 'No') displayName: 'Enable Corepack' - script: pnpm config set store-dir $(PNPM_CACHE_FOLDER) condition: eq(variables['isDocsOnly'], 'No') - script: pnpm store path condition: eq(variables['isDocsOnly'], 'No') - script: pnpm install && pnpm run build condition: eq(variables['isDocsOnly'], 'No') displayName: 'Install and build' - script: npx playwright@1.35.1 install chromium condition: eq(variables['isDocsOnly'], 'No') # Test critical app router and CNA tests to cover basic usage cases with windows - script: | node run-tests.js -c 1 test/production/pages-dir/production/test/index.test.ts test/integration/css-client-nav/test/index.test.js test/integration/rewrites-has-condition/test/index.test.js test/integration/create-next-app/examples.test.ts test/integration/create-next-app/index.test.ts test/integration/create-next-app/package-manager/pnpm.test.ts condition: eq(variables['isDocsOnly'], 'No') displayName: 'Run tests' - job: test_unit pool: vmImage: 'windows-2019' steps: - script: | wmic datafile where name="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" get Version /value displayName: 'List Chrome version' - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: 'Install Node.js' - bash: | node scripts/run-for-change.js --not --type docs --exec echo "##vso[task.setvariable variable=isDocsOnly]No" displayName: 'Check Docs Only Change' - script: corepack enable condition: eq(variables['isDocsOnly'], 'No') displayName: 'Enable Corepack' - script: pnpm config set store-dir $(PNPM_CACHE_FOLDER) condition: eq(variables['isDocsOnly'], 'No') - script: pnpm store path condition: eq(variables['isDocsOnly'], 'No') - script: pnpm install && pnpm run build condition: eq(variables['isDocsOnly'], 'No') displayName: 'Install and build' - script: node run-tests.js --type unit condition: eq(variables['isDocsOnly'], 'No') displayName: 'Run tests' env: NEXT_TEST_MODE: 'dev' - job: test_e2e_dev pool: vmImage: 'windows-2019' steps: - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: 'Install Node.js' - bash: | node scripts/run-for-change.js --not --type docs --exec echo "##vso[task.setvariable variable=isDocsOnly]No" displayName: 'Check Docs Only Change' - script: corepack enable condition: eq(variables['isDocsOnly'], 'No') displayName: 'Enable Corepack' - script: pnpm config set store-dir $(PNPM_CACHE_FOLDER) condition: eq(variables['isDocsOnly'], 'No') - script: pnpm store path condition: eq(variables['isDocsOnly'], 'No') - script: pnpm install && pnpm run build condition: eq(variables['isDocsOnly'], 'No') displayName: 'Install and build' - script: npx playwright@1.35.1 install chromium condition: eq(variables['isDocsOnly'], 'No') - script: | node run-tests.js -c 1 --debug test/e2e/app-dir/app/index.test.ts test/e2e/app-dir/app-edge/app-edge.test.ts condition: eq(variables['isDocsOnly'], 'No') displayName: 'Run tests (E2E Development)' env: NEXT_TEST_MODE: 'dev' - job: test_e2e_prod pool: vmImage: 'windows-2019' steps: - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: 'Install Node.js' - bash: | node scripts/run-for-change.js --not --type docs --exec echo "##vso[task.setvariable variable=isDocsOnly]No" displayName: 'Check Docs Only Change' - script: corepack enable condition: eq(variables['isDocsOnly'], 'No') displayName: 'Enable Corepack' - script: pnpm config set store-dir $(PNPM_CACHE_FOLDER) condition: eq(variables['isDocsOnly'], 'No') - script: pnpm store path condition: eq(variables['isDocsOnly'], 'No') - script: pnpm install && pnpm run build condition: eq(variables['isDocsOnly'], 'No') displayName: 'Install and build' - script: npx playwright@1.35.1 install chromium condition: eq(variables['isDocsOnly'], 'No') - script: | node run-tests.js -c 1 --debug test/e2e/app-dir/app/index.test.ts test/e2e/app-dir/app-edge/app-edge.test.ts condition: eq(variables['isDocsOnly'], 'No') displayName: 'Run tests (E2E Production)' env: NEXT_TEST_MODE: 'start'