Skip to content
Merged
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
27 changes: 25 additions & 2 deletions eng/pipelines/templates/jobs/archetype-go-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,36 @@ stages:
env:
GH_TOKEN: $(GH_TOKEN)

# On a post-merge main CI build, resolve the merged PR and require the 'auto-release' label plus a
# direct change to this pipeline's package before releasing. Manual/scheduled runs skip this stage
# and keep releasing on the changelog/tag gate alone.
- ${{ if eq(variables['Build.Reason'], 'IndividualCI') }}:
- template: /eng/common/pipelines/templates/stages/archetype-auto-release-prepare.yml
parameters:
DependsOn: ${{ parameters.DependsOn }}
Artifacts:
- ${{ if startsWith(parameters.ServiceDirectory, '../') }}:
name: ${{ replace(parameters.ServiceDirectory, '../', '') }}
safeName: ${{ replace(replace(parameters.ServiceDirectory, '../', ''), '/', '_') }}
- ${{ else }}:
name: sdk/${{ parameters.ServiceDirectory }}
safeName: ${{ replace(parameters.ServiceDirectory, '/', '_') }}
Comment thread
raych1 marked this conversation as resolved.

- stage: Release
variables:
- template: /eng/pipelines/templates/variables/globals.yml
- template: /eng/pipelines/templates/variables/image.yml
displayName: 'Release: ${{ parameters.ServiceDirectory }}'
dependsOn: CheckRelease
condition: and(succeeded(), eq(dependencies.CheckRelease.outputs['CheckReleaseJob.Verify.NeedToRelease'], 'true'))
# On post-merge main CI, also require the auto-release label + changed-package signal from
# AutoReleasePrepare. Manual/scheduled runs release on the changelog/tag gate alone.
${{ if eq(variables['Build.Reason'], 'IndividualCI') }}:
dependsOn:
- CheckRelease
- AutoReleasePrepare
condition: and(succeeded(), eq(dependencies.CheckRelease.outputs['CheckReleaseJob.Verify.NeedToRelease'], 'true'), eq(dependencies.AutoReleasePrepare.outputs['ResolveAutoReleasePackages.resolve.AutoReleaseLabelPresent'], 'true'), eq(dependencies.AutoReleasePrepare.outputs['ResolveAutoReleasePackages.resolve.HasAutoReleaseArtifacts'], 'true'))
${{ else }}:
dependsOn: CheckRelease
condition: and(succeeded(), eq(dependencies.CheckRelease.outputs['CheckReleaseJob.Verify.NeedToRelease'], 'true'))
jobs:
- deployment: ReleaseGate
environment: package-publish
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/templates/jobs/archetype-sdk-client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,10 @@ extends:
# The Prerelease and Release stages are conditioned on:
# 1. Internal trigger, not Pull Request trigger
# 2. Not weekly build
# 3. Manual trigger or force IncludeRelease
# 3. Manual trigger, post-merge main CI (auto-release), or force IncludeRelease
- ${{ if and(not(and(eq(parameters.SkipPrValidation, true), eq(variables['Build.Reason'], 'Manual'))), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal')) }}:
- ${{ if not(contains(variables['Build.DefinitionName'], 'weekly')) }}:
- ${{ if or(in(variables['Build.Reason'], 'Manual', ''), eq(parameters.IncludeRelease, true)) }}:
- ${{ if or(in(variables['Build.Reason'], 'Manual', '', 'IndividualCI'), eq(parameters.IncludeRelease, true)) }}:
- template: archetype-go-release.yml
parameters:
DependsOn:
Expand Down
Loading