Skip to content

Commit 5d2f03f

Browse files
Copilotdmichon-msftrushbot
authored
Updating the publish pipelines for NPM packages (#5953)
* chore: move npm publishing to release stage Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * chore: prune npmjs registry from npmrc files Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: add version bump pipeline Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: split npm publish from version bump Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: resolve bump pipeline by name Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: two bump pipelines and shared esrp publish pipelines Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: reference bump pipelines by definition id Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * ci: point post-publish at esrp publish pipelines in GitHubProjectsPublish Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Require bump pipeline definition ID Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Set publish registry to package feed proxy Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Address publish pipeline review feedback Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Update changelogs [skip ci] * Bump versions [skip ci] * Fix manual version bump commit flow Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Use safe bump tag delimiter Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> * Add network isolation policy to Official Azure pipelines Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: dmichon-msft <26827560+dmichon-msft@users.noreply.github.com> Co-authored-by: Rushbot <rushbot@users.noreply.github.com>
1 parent 3387a09 commit 5d2f03f

18 files changed

Lines changed: 686 additions & 211 deletions
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Pipeline: rushstack-esrp-publish-rush (AzDO project GitHubProjectsPublish)
2+
# Trigger: Automatically when a version bump PR from the Rush bump pipeline (definition 12) merges to main.
3+
# Purpose: Publish the tarballs packed by that bump pipeline run to the npm feed via ESRP.
4+
5+
trigger:
6+
branches:
7+
include:
8+
- main
9+
paths:
10+
include:
11+
- '**/CHANGELOG.md'
12+
- 'common/config/rush/version-policies.json'
13+
14+
pr: none
15+
16+
parameters:
17+
- name: publishToNpmFeed
18+
displayName: 'Publish to npm feed'
19+
type: boolean
20+
default: true
21+
- name: NpmTag
22+
displayName: 'NPM dist-tag'
23+
type: string
24+
default: latest
25+
- name: DryRun
26+
displayName: 'Dry run'
27+
type: boolean
28+
default: false
29+
- name: CommitShaOverride
30+
displayName: 'Commit SHA Override (for testing)'
31+
type: string
32+
default: ''
33+
34+
variables:
35+
- name: FORCE_COLOR
36+
value: 1
37+
- name: PackagesPath
38+
value: $(Pipeline.Workspace)/packages
39+
40+
resources:
41+
repositories:
42+
- repository: 1esPipelines
43+
type: git
44+
name: 1ESPipelineTemplates/1ESPipelineTemplates
45+
ref: refs/tags/release
46+
- repository: publishConfig
47+
type: git
48+
name: GitHubProjectsPublish/GitHubProjectsPublish
49+
ref: refs/heads/main
50+
51+
extends:
52+
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
53+
parameters:
54+
settings:
55+
networkIsolationPolicy: CFSClean,CFSClean2,CFSClean3,DefaultDeny
56+
pool:
57+
name: Azure-Pipelines-1ESPT-ExDShared
58+
os: windows
59+
stages:
60+
- template: /common/config/azure-pipelines/templates/esrp-publish-stages.yaml@self
61+
parameters:
62+
# https://dev.azure.com/RushStack/GitHubProjects/_build?definitionId=12
63+
BumpPipelineId: 12
64+
BumpPipelineProject: GitHubProjects
65+
StageNameSuffix: Rush
66+
DisplayNameSuffix: Rush
67+
PublishToNpmFeed: ${{ parameters.publishToNpmFeed }}
68+
NpmTag: ${{ parameters.NpmTag }}
69+
DryRun: ${{ parameters.DryRun }}
70+
CommitShaOverride: ${{ parameters.CommitShaOverride }}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Pipeline: rushstack-esrp-publish (AzDO project GitHubProjectsPublish)
2+
# Trigger: Automatically when a version bump PR from the non-Rush bump pipeline (definition 10) merges to main.
3+
# Purpose: Publish the tarballs packed by that bump pipeline run to the npm feed via ESRP.
4+
5+
trigger:
6+
branches:
7+
include:
8+
- main
9+
paths:
10+
include:
11+
- '**/CHANGELOG.md'
12+
- 'common/config/rush/version-policies.json'
13+
14+
pr: none
15+
16+
parameters:
17+
- name: publishToNpmFeed
18+
displayName: 'Publish to npm feed'
19+
type: boolean
20+
default: true
21+
- name: NpmTag
22+
displayName: 'NPM dist-tag'
23+
type: string
24+
default: latest
25+
- name: DryRun
26+
displayName: 'Dry run'
27+
type: boolean
28+
default: false
29+
- name: CommitShaOverride
30+
displayName: 'Commit SHA Override (for testing)'
31+
type: string
32+
default: ''
33+
34+
variables:
35+
- name: FORCE_COLOR
36+
value: 1
37+
- name: PackagesPath
38+
value: $(Pipeline.Workspace)/packages
39+
40+
resources:
41+
repositories:
42+
- repository: 1esPipelines
43+
type: git
44+
name: 1ESPipelineTemplates/1ESPipelineTemplates
45+
ref: refs/tags/release
46+
- repository: publishConfig
47+
type: git
48+
name: GitHubProjectsPublish/GitHubProjectsPublish
49+
ref: refs/heads/main
50+
51+
extends:
52+
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
53+
parameters:
54+
settings:
55+
networkIsolationPolicy: CFSClean,CFSClean2,CFSClean3,DefaultDeny
56+
pool:
57+
name: Azure-Pipelines-1ESPT-ExDShared
58+
os: windows
59+
stages:
60+
- template: /common/config/azure-pipelines/templates/esrp-publish-stages.yaml@self
61+
parameters:
62+
# https://dev.azure.com/RushStack/GitHubProjects/_build?definitionId=10
63+
BumpPipelineId: 10
64+
BumpPipelineProject: GitHubProjects
65+
StageNameSuffix: Rushstack
66+
DisplayNameSuffix: Rushstack
67+
PublishToNpmFeed: ${{ parameters.publishToNpmFeed }}
68+
NpmTag: ${{ parameters.NpmTag }}
69+
DryRun: ${{ parameters.DryRun }}
70+
CommitShaOverride: ${{ parameters.CommitShaOverride }}

common/config/azure-pipelines/npm-post-publish.yaml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,24 @@ variables:
1010
- name: FORCE_COLOR
1111
value: 1
1212

13-
# This pipeline is triggered only by pipeline resources (npm publish pipelines),
13+
# This pipeline is triggered only by pipeline resources (esrp publish pipelines),
1414
# not by CI pushes or PR builds.
1515
trigger: none
1616
pr: none
1717

1818
resources:
1919
pipelines:
20-
- pipeline: npmPublish
21-
source: 'rushstack NPM Publish'
20+
- pipeline: esrpPublishRushstack
21+
source: 'rushstack-esrp-publish'
22+
project: GitHubProjectsPublish
2223
trigger:
2324
enabled: true
2425
branches:
2526
include:
2627
- refs/heads/main
27-
- pipeline: npmPublishRush
28-
source: 'rushstack NPM Publish (rush)'
28+
- pipeline: esrpPublishRush
29+
source: 'rushstack-esrp-publish-rush'
30+
project: GitHubProjectsPublish
2931
trigger:
3032
enabled: true
3133
branches:
@@ -45,6 +47,8 @@ resources:
4547
extends:
4648
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
4749
parameters:
50+
settings:
51+
networkIsolationPolicy: CFSClean,CFSClean2,CFSClean3,DefaultDeny
4852
sdl:
4953
sourceRepositoriesToScan:
5054
exclude:
@@ -222,8 +226,8 @@ extends:
222226
displayName: 'Download API review files'
223227
inputs:
224228
source: specific
225-
project: GitHubProjects
226-
pipeline: 'rushstack NPM Publish'
229+
project: GitHubProjectsPublish
230+
pipeline: 'rushstack-esrp-publish'
227231
preferTriggeringPipeline: true
228232
runVersion: latest
229233
artifact: api
Lines changed: 54 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,54 @@
1-
parameters:
2-
- name: publishToNpmFeed
3-
displayName: 'Publish to npm feed'
4-
type: boolean
5-
default: true
6-
7-
variables:
8-
- name: FORCE_COLOR
9-
value: 1
10-
- name: SourceBranch
11-
value: $[ replace(replace(resources.repositories.self.ref, 'refs/heads/', ''), 'refs/pull/', 'refs/remotes/pull/') ]
12-
13-
resources:
14-
repositories:
15-
- repository: 1esPipelines
16-
type: git
17-
name: 1ESPipelineTemplates/1ESPipelineTemplates
18-
ref: refs/tags/release
19-
20-
extends:
21-
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
22-
parameters:
23-
pool:
24-
name: Azure-Pipelines-1ESPT-ExDShared
25-
os: windows
26-
stages:
27-
- stage:
28-
jobs:
29-
- job:
30-
pool:
31-
name: publish-rushstack
32-
os: linux
33-
templateContext:
34-
outputParentDirectory: $(Build.ArtifactStagingDirectory)
35-
outputs:
36-
- output: pipelineArtifact
37-
targetPath: $(Build.ArtifactStagingDirectory)/published-versions
38-
artifactName: published-versions
39-
- output: pipelineArtifact
40-
targetPath: $(Build.ArtifactStagingDirectory)/json-schemas
41-
artifactName: json-schemas
42-
- output: pipelineArtifact
43-
targetPath: $(Build.ArtifactStagingDirectory)/packages
44-
artifactName: packages
45-
- output: pipelineArtifact
46-
targetPath: $(Build.ArtifactStagingDirectory)/api
47-
artifactName: api
48-
steps:
49-
- checkout: self
50-
persistCredentials: true
51-
52-
- template: /common/config/azure-pipelines/templates/install-node.yaml@self
53-
54-
- template: /common/config/azure-pipelines/templates/build.yaml@self
55-
56-
- template: /common/config/azure-pipelines/templates/bump-versions.yaml@self
57-
parameters:
58-
VersionPolicyName: noRush
59-
BranchName: $(SourceBranch)
60-
61-
- template: /common/config/azure-pipelines/templates/bump-versions.yaml@self
62-
parameters:
63-
VersionPolicyName: rush
64-
BranchName: $(SourceBranch)
65-
66-
- script: 'node libraries/rush-lib/scripts/plugins-prepublish.js'
67-
displayName: 'Prepublish workaround for rush-lib'
68-
69-
- template: /common/config/azure-pipelines/templates/pack.yaml@self
70-
71-
- ${{ if eq(parameters.publishToNpmFeed, true) }}:
72-
- template: /common/config/azure-pipelines/templates/publish.yaml@self
73-
parameters:
74-
VersionPolicyName: noRush
75-
BranchName: $(SourceBranch)
76-
77-
- template: /common/config/azure-pipelines/templates/publish.yaml@self
78-
parameters:
79-
VersionPolicyName: rush
80-
BranchName: $(SourceBranch)
81-
82-
- template: /common/config/azure-pipelines/templates/post-publish.yaml@self
1+
# Pipeline: Bump Versions (Rush) -- AzDO definition 12 in the GitHubProjects project
2+
# Trigger: Automatically when changes merge to main that include change files or pipeline YAML.
3+
# Purpose: Bump versions for the "rush" version policy, build, pack, create/update GitHub PR.
4+
# The packed tarballs are published by the "esrp-publish-rush.yaml" pipeline once the
5+
# resulting version bump PR is merged.
6+
7+
trigger:
8+
batch: true
9+
branches:
10+
include:
11+
- main
12+
paths:
13+
include:
14+
- 'common/changes/*'
15+
- 'common/config/rush/version-policies.json'
16+
- 'common/config/azure-pipelines/**'
17+
18+
pr: none
19+
20+
variables:
21+
- name: FORCE_COLOR
22+
value: 1
23+
- name: BaseBranch
24+
value: $[ replace(variables['Build.SourceBranch'], 'refs/heads/', '') ]
25+
26+
resources:
27+
repositories:
28+
- repository: 1esPipelines
29+
type: git
30+
name: 1ESPipelineTemplates/1ESPipelineTemplates
31+
ref: refs/tags/release
32+
33+
extends:
34+
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
35+
parameters:
36+
settings:
37+
networkIsolationPolicy: CFSClean,CFSClean2,CFSClean3,DefaultDeny
38+
pool:
39+
name: Azure-Pipelines-1ESPT-ExDShared
40+
os: windows
41+
stages:
42+
- template: /common/config/azure-pipelines/templates/bump-versions-stages.yaml@self
43+
parameters:
44+
VersionPolicyName: rush
45+
StageName: BumpRushVersions
46+
StageDisplayName: 'Bump Rush Versions and Create PR'
47+
FeatureBranch: 'automated/bump-versions-rush'
48+
PrTitle: 'Bump Rush package versions'
49+
PrDescription: |
50+
Automated version bump generated by Azure DevOps Pipeline.
51+
52+
This PR contains version bumps for the "rush" version policy.
53+
54+
**Pipeline Run:** $(System.CollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)

0 commit comments

Comments
 (0)