rsnext/azure-pipelines.yml
2023-08-11 23:25:01 +00:00

186 lines
6.1 KiB
YAML

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_16_version: ^16.8.0
stages:
- stage: Test
jobs:
- job: test_integration
pool:
vmImage: 'windows-2019'
steps:
- task: NodeTool@0
inputs:
versionSpec: $(node_16_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 test/integration/production/test/index.test.js test/integration/css-client-nav/test/index.test.js test/integration/rewrites-has-condition/test/index.test.js
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_16_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_16_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
# 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_16_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
# condition: eq(variables['isDocsOnly'], 'No')
# displayName: 'Run tests (E2E Production)'
# env:
# NEXT_TEST_MODE: 'start'