eng/pipelines/ci.yaml (73 lines of code) (raw):

# Node.js # Build a general Node.js project with npm. # Add steps that analyze code, save build artifacts, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript trigger: - main extends: template: /eng/pipelines/templates/1es-redirect.yml parameters: stages: - stage: main displayName: Main pool: name: $(LINUXPOOL) image: $(LINUXVMIMAGE) os: linux jobs: - job: main displayName: "Build and Unit test" steps: - template: /eng/pipelines/templates/build.yaml - script: npx @microsoft/rush test:ci -v displayName: Test - task: PublishCodeCoverageResults@1 inputs: codeCoverageTool: Cobertura summaryFileLocation: $(Build.SourcesDirectory)/packages/**/coverage/cobertura-coverage.xml reportDirectory: $(Build.SourcesDirectory)/packages/**/coverage - script: npx @microsoft/rush check-format displayName: Check formatting - script: npx @microsoft/rush lint -v displayName: Lint - script: npx @microsoft/rush regen-codemodel displayName: Regen codemodel schema - script: node ./eng/scripts/check-for-changed-files.js displayName: Check Git Status For Changed Files - script: | commitId=$(git rev-parse --short HEAD) npx @microsoft/rush publish --apply --prerelease-name="ci.$commitId" displayName: Bump versions - script: npx @microsoft/rush publish --publish --pack --include-all displayName: Pack packages - task: 1ES.PublishPipelineArtifact@1 inputs: targetPath: $(Build.SourcesDirectory)/common/temp/artifacts/packages artifact: packages displayName: Publish packages(.tgz) as pipeline artifacts - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - template: /eng/pipelines/templates/create-tryit-comment.yaml # - job: lintdocs # displayName: Lint docs # continueOnError: true # steps: # - script: | # sudo npm install -g markdown-link-check # find docs -name "*.md" -print0 | xargs -0 -n1 markdown-link-check -c ./markdown-link-check-config.json # displayName: Find - stage: regressiontests displayName: Regression Tests dependsOn: main pool: name: $(LINUXPOOL) image: $(LINUXVMIMAGE) os: linux jobs: - template: /eng/pipelines/templates/regression-tests.yaml parameters: name: node18 nodeVersion: 18.x - template: /eng/pipelines/templates/regression-tests.yaml parameters: name: node20 nodeVersion: 20.x - stage: smoketests displayName: Smoke Tests dependsOn: main pool: name: $(LINUXPOOL) image: $(LINUXVMIMAGE) os: linux jobs: - template: /eng/pipelines/templates/smoke-tests.yaml parameters: name: node20 nodeVersion: 20.x