Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions common/config/azure-pipelines/esrp-publish-rush.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ parameters:
displayName: 'Commit SHA Override (for testing)'
type: string
default: $(Build.SourceVersion)
- name: BumpPipelineRunIdOverride
displayName: 'Bump pipeline run ID override (for recovery)'
type: number
default: 0

variables:
- name: FORCE_COLOR
Expand Down Expand Up @@ -68,3 +72,4 @@ extends:
NpmTag: ${{ parameters.NpmTag }}
DryRun: ${{ parameters.DryRun }}
CommitShaOverride: ${{ parameters.CommitShaOverride }}
BumpPipelineRunIdOverride: ${{ parameters.BumpPipelineRunIdOverride }}
5 changes: 5 additions & 0 deletions common/config/azure-pipelines/esrp-publish-rushstack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ parameters:
displayName: 'Commit SHA Override (for testing)'
type: string
default: $(Build.SourceVersion)
- name: BumpPipelineRunIdOverride
displayName: 'Bump pipeline run ID override (for recovery)'
type: number
default: 0

variables:
- name: FORCE_COLOR
Expand Down Expand Up @@ -68,3 +72,4 @@ extends:
NpmTag: ${{ parameters.NpmTag }}
DryRun: ${{ parameters.DryRun }}
CommitShaOverride: ${{ parameters.CommitShaOverride }}
BumpPipelineRunIdOverride: ${{ parameters.BumpPipelineRunIdOverride }}
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,25 @@ stages:

- template: /common/config/azure-pipelines/templates/build.yaml@self

# "noRush" is a pipeline cohort, not a Rush version policy. The old publishing flow
# achieved the separation by processing non-Rush changes before the Rush lockstep bump.
# Preserve that behavior while the two cohorts run in independent pipelines.
- script: >
node common/scripts/publish-cohort.js partition-changes
--cohort ${{ parameters.VersionPolicyName }}
--backup-path $(Agent.TempDirectory)/excluded-publish-changes
displayName: 'Select ${{ parameters.VersionPolicyName }} change files'

- template: /common/config/azure-pipelines/templates/bump-versions.yaml@self
parameters:
VersionPolicyName: ${{ parameters.VersionPolicyName }}

- script: >
node common/scripts/publish-cohort.js restore-changes
--backup-path $(Agent.TempDirectory)/excluded-publish-changes
displayName: 'Restore other publishing cohort change files'
condition: succeededOrFailed()

- bash: |
git add -u -- common/changes
git add -- '**/CHANGELOG.*' '**/package.json'
Expand Down Expand Up @@ -117,6 +132,13 @@ stages:
parameters:
VersionPolicyName: ${{ parameters.VersionPolicyName }}

- bash: |
if [ "$(HasChanges)" = "true" ] && [ "$(HasPackages)" != "true" ]; then
echo "##[error]Version bump produced no unpublished package tarballs."
exit 1
fi
displayName: 'Verify package artifact'

- template: /common/config/azure-pipelines/templates/post-publish.yaml@self

- template: /common/config/azure-pipelines/templates/push-and-create-github-pr.yaml@self
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ parameters:
type: boolean
- name: CommitShaOverride
type: string
# Allows a packaging run to be replayed when a previous release artifact was incomplete.
- name: BumpPipelineRunIdOverride
type: number
default: 0

stages:
- stage: Prepare${{ parameters.StageNameSuffix }}
Expand Down Expand Up @@ -60,13 +64,23 @@ stages:
displayName: 'Initialize artifact staging directories'
condition: always()

- template: /common/config/azure-pipelines/templates/find-bump-pipeline-run.yaml@self
parameters:
PipelineId: ${{ parameters.BumpPipelineId }}
CommitSha: ${{ coalesce(parameters.CommitShaOverride, '$(Build.SourceVersion)') }}
TeamProject: ${{ parameters.BumpPipelineProject }}
Name: FindBumpRun
WorkingDirectory: $(Build.SourcesDirectory)
- ${{ if gt(parameters.BumpPipelineRunIdOverride, 0) }}:
- bash: |
echo "Using bump pipeline run override ${{ parameters.BumpPipelineRunIdOverride }}"
echo "##vso[task.setvariable variable=IsVersionBumpMerge;isOutput=true]true"
echo "##vso[task.setvariable variable=BumpPipelineDefinitionId;isOutput=true]${{ parameters.BumpPipelineId }}"
echo "##vso[task.setvariable variable=BumpPipelineRunId;isOutput=true]${{ parameters.BumpPipelineRunIdOverride }}"
name: FindBumpRun
displayName: 'Use Bump Pipeline Run Override'

- ${{ else }}:
- template: /common/config/azure-pipelines/templates/find-bump-pipeline-run.yaml@self
parameters:
PipelineId: ${{ parameters.BumpPipelineId }}
CommitSha: ${{ coalesce(parameters.CommitShaOverride, '$(Build.SourceVersion)') }}
TeamProject: ${{ parameters.BumpPipelineProject }}
Name: FindBumpRun
WorkingDirectory: $(Build.SourcesDirectory)

- task: DownloadPipelineArtifact@2
condition: eq(variables['FindBumpRun.IsVersionBumpMerge'], 'true')
Expand Down
39 changes: 28 additions & 11 deletions common/config/azure-pipelines/templates/pack.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
parameters:
# Only the packages belonging to this version policy are packed.
- name: VersionPolicyName
type: string

Expand All @@ -9,13 +8,31 @@ steps:
Arguments: '--help'
DisplayName: 'Install Rush'

- template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self
parameters:
Arguments: >
publish
--publish
--pack
--include-all
--version-policy ${{ parameters.VersionPolicyName }}
--release-folder $(Build.ArtifactStagingDirectory)/packages
DisplayName: 'Rush Pack (Policy: ${{ parameters.VersionPolicyName }})'
- ${{ if eq(parameters.VersionPolicyName, 'noRush') }}:
- template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self
parameters:
Arguments: >
publish
--publish
--pack
--include-all
--release-folder $(Build.ArtifactStagingDirectory)/packages
DisplayName: 'Rush Pack (Policy: ${{ parameters.VersionPolicyName }})'

- ${{ else }}:
- template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self
parameters:
Arguments: >
publish
--publish
--pack
--include-all
--version-policy ${{ parameters.VersionPolicyName }}
--release-folder $(Build.ArtifactStagingDirectory)/packages
DisplayName: 'Rush Pack (Policy: ${{ parameters.VersionPolicyName }})'

- script: >
node common/scripts/publish-cohort.js filter-packages
--cohort ${{ parameters.VersionPolicyName }}
--packages-path $(Build.ArtifactStagingDirectory)/packages
displayName: 'Filter unpublished ${{ parameters.VersionPolicyName }} packages'
1 change: 1 addition & 0 deletions common/config/rush/.npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
omit-lockfile-registry-resolved=true
registry=https://packagefeedproxy.microsoft.io/npm/
Loading