From 2081ff60005f88fe3d7badbf289c8c10c1023541 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 15:58:00 -0800 Subject: [PATCH 1/6] Add package packing and artifact publishing to AzDO pipelines Refactor npm-publish and npm-publish-rush pipelines to pack all packages and publish them as pipeline artifacts in addition to publishing to npm. Add a publishToNpmFeed parameter (default: true) to optionally disable npm feed publishing and only produce pipeline artifacts. Co-Authored-By: Claude Sonnet 4.5 --- common/config/azure-pipelines/npm-publish-rush.yaml | 13 +++++++++++++ common/config/azure-pipelines/npm-publish.yaml | 12 ++++++++++++ common/config/azure-pipelines/templates/pack.yaml | 3 +++ 3 files changed, 28 insertions(+) create mode 100644 common/config/azure-pipelines/templates/pack.yaml diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index 2502d76dbd5..84f5c99c55d 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -1,3 +1,9 @@ +parameters: + - name: publishToNpmFeed + displayName: 'Publish to npm feed' + type: boolean + default: true + variables: - name: FORCE_COLOR value: 1 @@ -32,6 +38,9 @@ extends: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/json-schemas artifactName: json-schemas + - output: pipelineArtifact + targetPath: $(Build.ArtifactStagingDirectory)/packages + artifactName: packages steps: - checkout: self persistCredentials: true @@ -53,14 +62,18 @@ extends: - script: 'node libraries/rush-lib/scripts/plugins-prepublish.js' displayName: 'Prepublish workaround for rush-lib' + - template: /common/config/azure-pipelines/templates/pack.yaml@self + - template: /common/config/azure-pipelines/templates/publish.yaml@self parameters: VersionPolicyName: noRush BranchName: $(SourceBranch) + condition: eq('${{ parameters.publishToNpmFeed }}', 'true') - template: /common/config/azure-pipelines/templates/publish.yaml@self parameters: VersionPolicyName: rush BranchName: $(SourceBranch) + condition: eq('${{ parameters.publishToNpmFeed }}', 'true') - template: /common/config/azure-pipelines/templates/post-publish.yaml@self diff --git a/common/config/azure-pipelines/npm-publish.yaml b/common/config/azure-pipelines/npm-publish.yaml index 86f88fa8040..6304a317fd8 100644 --- a/common/config/azure-pipelines/npm-publish.yaml +++ b/common/config/azure-pipelines/npm-publish.yaml @@ -1,3 +1,9 @@ +parameters: + - name: publishToNpmFeed + displayName: 'Publish to npm feed' + type: boolean + default: true + variables: - name: FORCE_COLOR value: 1 @@ -32,6 +38,9 @@ extends: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/json-schemas artifactName: json-schemas + - output: pipelineArtifact + targetPath: $(Build.ArtifactStagingDirectory)/packages + artifactName: packages steps: - checkout: self persistCredentials: true @@ -48,9 +57,12 @@ extends: - script: 'node libraries/rush-lib/scripts/plugins-prepublish.js' displayName: 'Prepublish workaround for rush-lib' + - template: /common/config/azure-pipelines/templates/pack.yaml@self + - template: /common/config/azure-pipelines/templates/publish.yaml@self parameters: VersionPolicyName: noRush BranchName: $(SourceBranch) + condition: eq('${{ parameters.publishToNpmFeed }}', 'true') - template: /common/config/azure-pipelines/templates/post-publish.yaml@self diff --git a/common/config/azure-pipelines/templates/pack.yaml b/common/config/azure-pipelines/templates/pack.yaml new file mode 100644 index 00000000000..0442f303e56 --- /dev/null +++ b/common/config/azure-pipelines/templates/pack.yaml @@ -0,0 +1,3 @@ +steps: + - script: 'node common/scripts/install-run-rush.js publish --pack --include-all --release-folder $(Build.ArtifactStagingDirectory)/packages' + displayName: 'Rush Pack' From 64d95d9416d967f604f4d9b4afc0adf4bcecffa6 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 16:01:56 -0800 Subject: [PATCH 2/6] Add Claude Code local configuration to gitignore Co-Authored-By: Claude Sonnet 4.5 --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index f07405bb4b6..93d80cd12cf 100644 --- a/.gitignore +++ b/.gitignore @@ -134,3 +134,6 @@ dist-storybook/ playwright-report/ test-results/ +# Claude Code local configuration +.claude/*.local.json + From cd4b2055af3f0ee7793b9cb39bdc83a60f02d643 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 16:06:08 -0800 Subject: [PATCH 3/6] Fix YAML parse error by moving condition inside templates Azure Pipelines doesn't support condition on template calls directly. Move the publishToNpmFeed condition inside the publish.yaml template and pass the parameter from the pipeline files. Co-Authored-By: Claude Sonnet 4.5 --- .../azure-pipelines/npm-publish-rush.yaml | 20 +++++++++---------- .../config/azure-pipelines/npm-publish.yaml | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index 84f5c99c55d..6528ea11ce3 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -64,16 +64,16 @@ extends: - template: /common/config/azure-pipelines/templates/pack.yaml@self - - template: /common/config/azure-pipelines/templates/publish.yaml@self - parameters: - VersionPolicyName: noRush - BranchName: $(SourceBranch) - condition: eq('${{ parameters.publishToNpmFeed }}', 'true') + - ${{ if eq(parameters.publishToNpmFeed, true) }}: + - template: /common/config/azure-pipelines/templates/publish.yaml@self + parameters: + VersionPolicyName: noRush + BranchName: $(SourceBranch) - - template: /common/config/azure-pipelines/templates/publish.yaml@self - parameters: - VersionPolicyName: rush - BranchName: $(SourceBranch) - condition: eq('${{ parameters.publishToNpmFeed }}', 'true') + - ${{ if eq(parameters.publishToNpmFeed, true) }}: + - template: /common/config/azure-pipelines/templates/publish.yaml@self + parameters: + VersionPolicyName: rush + BranchName: $(SourceBranch) - template: /common/config/azure-pipelines/templates/post-publish.yaml@self diff --git a/common/config/azure-pipelines/npm-publish.yaml b/common/config/azure-pipelines/npm-publish.yaml index 6304a317fd8..016e79f68d1 100644 --- a/common/config/azure-pipelines/npm-publish.yaml +++ b/common/config/azure-pipelines/npm-publish.yaml @@ -59,10 +59,10 @@ extends: - template: /common/config/azure-pipelines/templates/pack.yaml@self - - template: /common/config/azure-pipelines/templates/publish.yaml@self - parameters: - VersionPolicyName: noRush - BranchName: $(SourceBranch) - condition: eq('${{ parameters.publishToNpmFeed }}', 'true') + - ${{ if eq(parameters.publishToNpmFeed, true) }}: + - template: /common/config/azure-pipelines/templates/publish.yaml@self + parameters: + VersionPolicyName: noRush + BranchName: $(SourceBranch) - template: /common/config/azure-pipelines/templates/post-publish.yaml@self From 6d1b627815c556f98ca00734d599a8e7910d89d9 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 16:16:09 -0800 Subject: [PATCH 4/6] Add --publish flag to rush publish --pack command The --pack parameter requires --publish to be specified for it to actually pack the packages. Co-Authored-By: Claude Sonnet 4.5 --- common/config/azure-pipelines/templates/pack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/config/azure-pipelines/templates/pack.yaml b/common/config/azure-pipelines/templates/pack.yaml index 0442f303e56..9b646b2312c 100644 --- a/common/config/azure-pipelines/templates/pack.yaml +++ b/common/config/azure-pipelines/templates/pack.yaml @@ -1,3 +1,3 @@ steps: - - script: 'node common/scripts/install-run-rush.js publish --pack --include-all --release-folder $(Build.ArtifactStagingDirectory)/packages' + - script: 'node common/scripts/install-run-rush.js publish --publish --pack --include-all --release-folder $(Build.ArtifactStagingDirectory)/packages' displayName: 'Rush Pack' From 7e2566aae6fff9e529126c9de48f58ac94b4af5c Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 16:16:57 -0800 Subject: [PATCH 5/6] fixup! Fix YAML parse error by moving condition inside templates --- common/config/azure-pipelines/npm-publish-rush.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index 6528ea11ce3..55b6a5a78c0 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -70,7 +70,6 @@ extends: VersionPolicyName: noRush BranchName: $(SourceBranch) - - ${{ if eq(parameters.publishToNpmFeed, true) }}: - template: /common/config/azure-pipelines/templates/publish.yaml@self parameters: VersionPolicyName: rush From adb2f4e4ebcb72b9f0da4cd4ef501b7e224bd1cc Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Tue, 3 Feb 2026 16:38:09 -0800 Subject: [PATCH 6/6] Add outputParentDirectory to templateContext in npm-publish YAML files --- common/config/azure-pipelines/npm-publish-rush.yaml | 1 + common/config/azure-pipelines/npm-publish.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index 55b6a5a78c0..ee40eec3c8d 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -31,6 +31,7 @@ extends: name: publish-rushstack os: linux templateContext: + outputParentDirectory: $(Build.ArtifactStagingDirectory) outputs: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/published-versions diff --git a/common/config/azure-pipelines/npm-publish.yaml b/common/config/azure-pipelines/npm-publish.yaml index 016e79f68d1..dfb163c14b8 100644 --- a/common/config/azure-pipelines/npm-publish.yaml +++ b/common/config/azure-pipelines/npm-publish.yaml @@ -31,6 +31,7 @@ extends: name: publish-rushstack os: linux templateContext: + outputParentDirectory: $(Build.ArtifactStagingDirectory) outputs: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/published-versions