Skip to content

Commit

Permalink
Use 1es pipeline templates (Azure#4920)
Browse files Browse the repository at this point in the history
Co-authored-by: Scott Beddall (from Dev Box) <[email protected]>
Co-authored-by: Timothee Guerin <[email protected]>
  • Loading branch information
3 people committed Mar 26, 2024
1 parent 63ffe68 commit 977049c
Show file tree
Hide file tree
Showing 6 changed files with 251 additions and 146 deletions.
144 changes: 79 additions & 65 deletions eng/pipelines/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,80 +6,94 @@
trigger:
- main

pool:
vmImage: "ubuntu-latest"
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

stages:
- stage: main
displayName: Main
jobs:
- job: main
displayName: "Build and Unit test"
steps:
- template: ./templates/build.yaml
- script: npx @microsoft/rush test:ci -v
displayName: Test

- 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

- 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 check-format
displayName: Check formatting
- script: npx @microsoft/rush lint -v
displayName: Lint

- script: npx @microsoft/rush lint -v
displayName: Lint
- script: npx @microsoft/rush regen-codemodel
displayName: Regen codemodel schema

- 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: 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: |
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

- 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

- publish: $(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

- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- template: ./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: regressiontests
displayName: Regression Tests
dependsOn: main
jobs:
- template: ./templates/regression-tests.yaml
parameters:
name: node18
nodeVersion: 18.x
- template: ./templates/regression-tests.yaml
parameters:
name: node20
nodeVersion: 20.x

- stage: smoketests
displayName: Smoke Tests
dependsOn: main
jobs:
- template: ./templates/smoke-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
42 changes: 23 additions & 19 deletions eng/pipelines/publish-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,29 @@

trigger: none

pool:
vmImage: "ubuntu-latest"
extends:
template: /eng/pipelines/templates/1es-redirect.yml
parameters:
stages:
- stage: npm
pool:
name: $(LINUXPOOL)
image: $(LINUXVMIMAGE)
os: linux
jobs:
- job: dev
displayName: Publish dev
steps:
- template: /eng/pipelines/templates/build.yaml

stages:
- stage: npm
jobs:
- job: dev
displayName: Publish dev
steps:
- template: ./templates/build.yaml
- script: |
commitId=$(git rev-parse --short HEAD)
npx @microsoft/rush publish --apply --prerelease-name="ci.$commitId"
displayName: Bump versions
- 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

- script: npx @microsoft/rush publish --publish --pack --include-all
displayName: Pack packages

- script: |
npx @microsoft/rush publish --publish --registry https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-tools-feeds/npm/registry --npm-auth-token "$(azure-sdk-devops-npm-token)" --include-all --set-access-level public
displayName: Publish packages
- script: |
npx @microsoft/rush publish --publish --registry https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-tools-feeds/npm/registry --npm-auth-token "$(azure-sdk-devops-npm-token)" --include-all --set-access-level public
displayName: Publish packages
124 changes: 66 additions & 58 deletions eng/pipelines/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,66 +7,74 @@ trigger:
- main
- release/*

pool:
vmImage: "ubuntu-latest"
extends:
template: /eng/pipelines/templates/1es-redirect.yml
parameters:
stages:
- stage: npm
pool:
name: $(LINUXPOOL)
image: $(LINUXVMIMAGE)
os: linux
jobs:
- job: stable
displayName: Publish stable
steps:
- template: /eng/pipelines/templates/build.yaml

stages:
- stage: npm
jobs:
- job: stable
displayName: Publish stable
steps:
- template: ./templates/build.yaml
- script: npx @microsoft/rush publish --publish --pack --include-all
displayName: Pack packages

- script: npx @microsoft/rush publish --publish --pack --include-all
displayName: Pack packages
- script: |
NPM_AUTH_TOKEN="$(azure-sdk-npm-token)" npx @microsoft/rush publish --publish --include-all --set-access-level public
displayName: Publish packages
- script: |
NPM_AUTH_TOKEN="$(azure-sdk-npm-token)" npx @microsoft/rush publish --publish --include-all --set-access-level public
displayName: Publish packages
- job: prerelease
displayName: Publish prerelease
dependsOn: stable # Publish prerelease after to prevent race condition.
steps:
- template: /eng/pipelines/templates/build.yaml

- job: prerelease
displayName: Publish prerelease
dependsOn: stable # Publish prerelease after to prevent race condition.
steps:
- template: ./templates/build.yaml
- script: node ./eng/bump-for-prerelease.js
displayName: Bump version to prerelease targets

- script: node ./eng/bump-for-prerelease.js
displayName: Bump version to prerelease targets

- script: |
NPM_AUTH_TOKEN="$(azure-sdk-npm-token)" npx @microsoft/rush publish --publish --include-all --set-access-level public --tag next
displayName: Publish packages
- stage: Docker
dependsOn: npm
jobs:
- template: ./templates/build-and-push-docker.yaml
parameters:
name: base
image: azsdkengsys.azurecr.io/azuresdk/autorest
dockerFolder: ./docker/base/ubuntu
readmePath: docker/base/readme.md
- template: ./templates/build-and-push-docker.yaml
parameters:
name: dotnet
image: azsdkengsys.azurecr.io/azuresdk/autorest-dotnet
dockerFolder: ./docker/dotnet/ubuntu
readmePath: docker/dotnet/readme.md
- template: ./templates/build-and-push-docker.yaml
parameters:
name: python
image: azsdkengsys.azurecr.io/azuresdk/autorest-python
dockerFolder: ./docker/python/ubuntu
readmePath: docker/python/readme.md
- template: ./templates/build-and-push-docker.yaml
parameters:
name: java
image: azsdkengsys.azurecr.io/azuresdk/autorest-java
dockerFolder: ./docker/java/ubuntu
readmePath: docker/java/readme.md
- template: ./templates/build-and-push-docker.yaml
parameters:
name: all
image: azsdkengsys.azurecr.io/azuresdk/autorest-all
dockerFolder: ./docker/all/ubuntu
readmePath: docker/all/readme.md
- script: |
NPM_AUTH_TOKEN="$(azure-sdk-npm-token)" npx @microsoft/rush publish --publish --include-all --set-access-level public --tag next
displayName: Publish packages
- stage: Docker
dependsOn: npm
pool:
name: $(LINUXPOOL)
image: $(LINUXVMIMAGE)
os: linux
jobs:
- template: /eng/pipelines/templates/build-and-push-docker.yaml
parameters:
name: base
image: azsdkengsys.azurecr.io/azuresdk/autorest
dockerFolder: ./docker/base/ubuntu
readmePath: docker/base/readme.md
- template: /eng/pipelines/templates/build-and-push-docker.yaml
parameters:
name: dotnet
image: azsdkengsys.azurecr.io/azuresdk/autorest-dotnet
dockerFolder: ./docker/dotnet/ubuntu
readmePath: docker/dotnet/readme.md
- template: /eng/pipelines/templates/build-and-push-docker.yaml
parameters:
name: python
image: azsdkengsys.azurecr.io/azuresdk/autorest-python
dockerFolder: ./docker/python/ubuntu
readmePath: docker/python/readme.md
- template: /eng/pipelines/templates/build-and-push-docker.yaml
parameters:
name: java
image: azsdkengsys.azurecr.io/azuresdk/autorest-java
dockerFolder: ./docker/java/ubuntu
readmePath: docker/java/readme.md
- template: /eng/pipelines/templates/build-and-push-docker.yaml
parameters:
name: all
image: azsdkengsys.azurecr.io/azuresdk/autorest-all
dockerFolder: ./docker/all/ubuntu
readmePath: docker/all/readme.md
55 changes: 55 additions & 0 deletions eng/pipelines/templates/1es-redirect.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

parameters:
- name: stages
type: stageList
default: []
- name: variables
type: object
default: {}
- name: Use1ESOfficial
type: boolean
default: true

extends:
${{ if and(parameters.Use1ESOfficial, eq(variables['System.TeamProject'], 'internal')) }}:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
${{ else }}:
template: v1/1ES.Unofficial.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
settings:
skipBuildTagsForGitHubPullRequests: true
sdl:
git:
longpaths: true
sourceAnalysisPool:
name: azsdk-pool-mms-win-2022-general
image: azsdk-pool-mms-win-2022-1espt
os: windows
psscriptanalyzer:
compiled: true
break: true
stages:
- ${{ each stage in parameters.stages }}:
- ${{ each pair in stage }}:
${{ if ne(pair.key, 'variables') }}:
${{ pair.key }}: ${{ pair.value }}
variables:
- template: /eng/pipelines/templates/variables/image.yml@self
- ${{ each variable in parameters.variables }}:
- ${{ if eq(variable.key, 'template') }}:
- template: ${{ variable.value }}
- ${{ else }}:
- name: ${{ coalesce(variable.key, variable.name) }}
value: ${{ variable.value }}
- ${{ each variable in stage.variables }}:
- ${{ if in(variable.key, 'template', 'group') }}:
- ${{ variable.key }}: ${{ variable.value }}
- ${{ else }}:
- name: ${{ coalesce(variable.key, variable.name) }}
value: ${{ variable.value }}
Loading

0 comments on commit 977049c

Please sign in to comment.