From 40ae87cbeb2cf969611d42c2f949b154a8b7190c Mon Sep 17 00:00:00 2001 From: andremig-bentley Date: Mon, 13 Oct 2025 15:26:23 -0600 Subject: [PATCH 1/7] init commit --- .../config/azure-pipelines/jobs/fast-ci.yaml | 34 +++++++++++++++++++ .../azure-pipelines/jobs/version-bump.yaml | 8 ++--- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index 3e674a413539..dea1add3268e 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -225,6 +225,40 @@ jobs: # The publish script identifies any new packages not previously published and tags the build - template: ../templates/publish.yaml + #If + - job: CreateReleaseTag + displayName: Create Release Tag + dependsOn: + - Build + - ParseCommitNotes + condition: and(succeeded('Build'), eq(dependencies.ParseCommitNotes.outputs['publishNote.shouldPublish'], 'true'), ne(variables['Build.Reason'], 'PullRequest')) + pool: + vmImage: ubuntu-latest + steps: + - checkout: self + persistCredentials: true + + - bash: | + git config --local user.email imodeljs-admin@users.noreply.github.com + git config --local user.name imodeljs-admin + displayName: Setup Git + + - bash: | + # Get version from version-policies.json + version=$(jq -r '.[] | .version' common/config/rush/version-policies.json) + echo "Creating release tag for version: $version" + echo "##vso[task.setvariable variable=releaseVersion]$version" + displayName: Get release version + + - bash: | + # Create and push the release tag + git tag -a "release/$(releaseVersion)" -m "v$(releaseVersion)" + git push origin "release/$(releaseVersion)" + echo "Successfully created and pushed release tag: release/$(releaseVersion)" + displayName: Create and push release tag + env: + GITHUB_TOKEN: $(GH_TOKEN) + - job: PostResult dependsOn: - CheckLinkedPR diff --git a/common/config/azure-pipelines/jobs/version-bump.yaml b/common/config/azure-pipelines/jobs/version-bump.yaml index 84b5ab906d12..a9b56df4a8d9 100644 --- a/common/config/azure-pipelines/jobs/version-bump.yaml +++ b/common/config/azure-pipelines/jobs/version-bump.yaml @@ -332,10 +332,6 @@ jobs: env: GH_TOKEN: $(GITHUBTOKEN) - - ${{ if or(eq(parameters.BumpType, 'minor'), eq(parameters.BumpType, 'patch')) }}: - - bash: 'git tag -a release/$(getVersion.version) -m "v$(getVersion.version)"' - displayName: Create git tag - - bash: git fetch https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core refs/notes/commits:refs/notes/commits displayName: git fetch refs/notes/commits continueOnError: true @@ -357,11 +353,11 @@ jobs: git push https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core refs/notes/commits displayName: git push refs/notes/commits - - bash: "git push --follow-tags https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core $(releaseBranchName)" + - bash: "git push https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core $(releaseBranchName)" displayName: Push version bump for release candidate condition: eq('${{ parameters.BumpType }}', 'releaseCandidate') - - bash: "git push --follow-tags https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core HEAD:$(Build.SourceBranch)" + - bash: "git push https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core HEAD:$(Build.SourceBranch)" displayName: Push version bump for non-release candidate condition: ne('${{ parameters.BumpType }}', 'releaseCandidate') From ffd1294afbc2c61ceb6fb5c1fd96c69503402ddb Mon Sep 17 00:00:00 2001 From: andremig-bentley Date: Mon, 13 Oct 2025 16:09:43 -0600 Subject: [PATCH 2/7] cleanup --- common/config/azure-pipelines/jobs/fast-ci.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index dea1add3268e..fa4e98608820 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -254,7 +254,6 @@ jobs: # Create and push the release tag git tag -a "release/$(releaseVersion)" -m "v$(releaseVersion)" git push origin "release/$(releaseVersion)" - echo "Successfully created and pushed release tag: release/$(releaseVersion)" displayName: Create and push release tag env: GITHUB_TOKEN: $(GH_TOKEN) From 7fa4da10a82d61afb103fed41a9252f11e012f3a Mon Sep 17 00:00:00 2001 From: andremig-bentley <101671244+andremig-bentley@users.noreply.github.com> Date: Mon, 13 Oct 2025 16:22:27 -0600 Subject: [PATCH 3/7] Update common/config/azure-pipelines/jobs/fast-ci.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- common/config/azure-pipelines/jobs/fast-ci.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index fa4e98608820..7a4583e3f132 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -225,7 +225,6 @@ jobs: # The publish script identifies any new packages not previously published and tags the build - template: ../templates/publish.yaml - #If - job: CreateReleaseTag displayName: Create Release Tag dependsOn: From a406f5e1feb955876df2e0c3354331b628fa7b71 Mon Sep 17 00:00:00 2001 From: andremig-bentley Date: Mon, 13 Oct 2025 16:31:43 -0600 Subject: [PATCH 4/7] rm persistCredentials --- common/config/azure-pipelines/jobs/fast-ci.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index fa4e98608820..d2d1f1dc4c6d 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -236,7 +236,6 @@ jobs: vmImage: ubuntu-latest steps: - checkout: self - persistCredentials: true - bash: | git config --local user.email imodeljs-admin@users.noreply.github.com @@ -253,10 +252,8 @@ jobs: - bash: | # Create and push the release tag git tag -a "release/$(releaseVersion)" -m "v$(releaseVersion)" - git push origin "release/$(releaseVersion)" + git push https://$(GH_TOKEN)@github.com/iTwin/itwinjs-core "release/$(releaseVersion)" displayName: Create and push release tag - env: - GITHUB_TOKEN: $(GH_TOKEN) - job: PostResult dependsOn: From c5532f2eb7ea01c2dafe1b1b2b730c9a14256698 Mon Sep 17 00:00:00 2001 From: andremig-bentley Date: Tue, 14 Oct 2025 09:40:21 -0600 Subject: [PATCH 5/7] qol upgrades --- common/config/azure-pipelines/jobs/fast-ci.yaml | 6 ++++-- common/config/azure-pipelines/jobs/version-bump.yaml | 6 +++--- common/config/azure-pipelines/templates/core-build.yaml | 4 ++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index b757927aa70e..0049968747b8 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -145,7 +145,7 @@ jobs: # This note indicates that changes from the ESLint deprecation rule must be reviewed # and approved before continuing with the release process. commitId="$(Build.SourceVersion)" - deprecationCommentChangesRegex="DEPRECATION_COMMENT_CHANGES" + deprecationCommentChangesRegex="DEPRECATION_COMMENT_CHANGES_PR" if [[ "$(getCommit.notes)" =~ $deprecationCommentChangesRegex ]]; then echo "$commitId has deprecation comment changes that should be reviewed before release" echo '##vso[task.setvariable variable=shouldRequireApproval;isOutput=true]true' @@ -153,7 +153,7 @@ jobs: echo "$commitId doesn't have any deprecation comment changes that need reviewal" echo '##vso[task.setvariable variable=shouldRequireApproval;isOutput=true]false' fi - displayName: Parse DEPRECATION_COMMENT_CHANGES note + displayName: Parse DEPRECATION_COMMENT_CHANGES_PR note name: deprecationCommentNote - job: WaitForCodeChangeValidation @@ -214,6 +214,8 @@ jobs: steps: - checkout: self clean: true + timeoutInMinutes: 5 + retryCountOnTaskFailure: 1 - template: ../templates/core-build.yaml parameters: nodeVersion: 22.x diff --git a/common/config/azure-pipelines/jobs/version-bump.yaml b/common/config/azure-pipelines/jobs/version-bump.yaml index a9b56df4a8d9..0b283a5fe526 100644 --- a/common/config/azure-pipelines/jobs/version-bump.yaml +++ b/common/config/azure-pipelines/jobs/version-bump.yaml @@ -344,10 +344,10 @@ jobs: - bash: | latestCommit=$(git log -1 --format=%H) - echo "Applying DEPRECATION_COMMENT_CHANGES note to commit $latestCommit" - git notes append -m "DEPRECATION_COMMENT_CHANGES" $latestCommit + echo "Applying DEPRECATION_COMMENT_CHANGES_PR note to commit $latestCommit" + git notes append -m "DEPRECATION_COMMENT_CHANGES_PR" $latestCommit displayName: Mark commit for eslint rule changes - condition: eq(variables['deprecationCommentChangesMade'], 'true') + condition: eq(variables['needsPR'], 'true') - bash: | git push https://$(GITHUBTOKEN)@github.com/iTwin/itwinjs-core refs/notes/commits diff --git a/common/config/azure-pipelines/templates/core-build.yaml b/common/config/azure-pipelines/templates/core-build.yaml index 45bee2d5971b..efeea504fca4 100644 --- a/common/config/azure-pipelines/templates/core-build.yaml +++ b/common/config/azure-pipelines/templates/core-build.yaml @@ -70,6 +70,8 @@ steps: - script: node common/scripts/install-run-rush.js install displayName: rush install workingDirectory: ${{ parameters.workingDir }} + timeoutInMinutes: 5 + retryCountOnTaskFailure: 1 - script: node common/scripts/install-run-rush.js audit displayName: rush audit @@ -122,6 +124,7 @@ steps: env: NODE_ENV: development condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) + retryCountOnTaskFailure: 1 # MacOS and Windows agents work without any virtual display - script: node common/scripts/install-run-rush.js cover --verbose @@ -130,6 +133,7 @@ steps: env: NODE_ENV: development condition: and(succeeded(), ne(variables['Agent.OS'], 'Linux')) + retryCountOnTaskFailure: 1 - script: node common/scripts/install-run-rush.js docs displayName: rush docs From 85c9fa09490c047eaca8ef00ead9d8e09928f46a Mon Sep 17 00:00:00 2001 From: andremig-bentley <101671244+andremig-bentley@users.noreply.github.com> Date: Tue, 14 Oct 2025 09:50:59 -0600 Subject: [PATCH 6/7] Update common/config/azure-pipelines/jobs/fast-ci.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- common/config/azure-pipelines/jobs/fast-ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index 0049968747b8..6c8e36d9016b 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -232,6 +232,10 @@ jobs: dependsOn: - Build - ParseCommitNotes + # Only run if: + # 1. The Build job succeeded + # 2. The ParseCommitNotes job output 'publishNote.shouldPublish' is 'true' + # 3. The build reason is not 'PullRequest' condition: and(succeeded('Build'), eq(dependencies.ParseCommitNotes.outputs['publishNote.shouldPublish'], 'true'), ne(variables['Build.Reason'], 'PullRequest')) pool: vmImage: ubuntu-latest From 1190dea4b009485edcd9762f4e429d148e3bd82c Mon Sep 17 00:00:00 2001 From: andremig-bentley Date: Mon, 20 Oct 2025 15:10:32 -0600 Subject: [PATCH 7/7] rm release tag from build --- .../config/azure-pipelines/jobs/fast-ci.yaml | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/common/config/azure-pipelines/jobs/fast-ci.yaml b/common/config/azure-pipelines/jobs/fast-ci.yaml index 6c8e36d9016b..14b4b598ff69 100644 --- a/common/config/azure-pipelines/jobs/fast-ci.yaml +++ b/common/config/azure-pipelines/jobs/fast-ci.yaml @@ -227,39 +227,6 @@ jobs: # The publish script identifies any new packages not previously published and tags the build - template: ../templates/publish.yaml - - job: CreateReleaseTag - displayName: Create Release Tag - dependsOn: - - Build - - ParseCommitNotes - # Only run if: - # 1. The Build job succeeded - # 2. The ParseCommitNotes job output 'publishNote.shouldPublish' is 'true' - # 3. The build reason is not 'PullRequest' - condition: and(succeeded('Build'), eq(dependencies.ParseCommitNotes.outputs['publishNote.shouldPublish'], 'true'), ne(variables['Build.Reason'], 'PullRequest')) - pool: - vmImage: ubuntu-latest - steps: - - checkout: self - - - bash: | - git config --local user.email imodeljs-admin@users.noreply.github.com - git config --local user.name imodeljs-admin - displayName: Setup Git - - - bash: | - # Get version from version-policies.json - version=$(jq -r '.[] | .version' common/config/rush/version-policies.json) - echo "Creating release tag for version: $version" - echo "##vso[task.setvariable variable=releaseVersion]$version" - displayName: Get release version - - - bash: | - # Create and push the release tag - git tag -a "release/$(releaseVersion)" -m "v$(releaseVersion)" - git push https://$(GH_TOKEN)@github.com/iTwin/itwinjs-core "release/$(releaseVersion)" - displayName: Create and push release tag - - job: PostResult dependsOn: - CheckLinkedPR