Skip to content

ci: migrate GitHub release pipeline from OneBranch to 1ES template#616

Merged
timenick merged 2 commits into
mainfrom
zhiwang/release-github-pipeline
May 14, 2026
Merged

ci: migrate GitHub release pipeline from OneBranch to 1ES template#616
timenick merged 2 commits into
mainfrom
zhiwang/release-github-pipeline

Conversation

@timenick
Copy link
Copy Markdown
Collaborator

Summary

Switches .pipelines/modelkit-release-github.yml from v2/OneBranch.Official.CrossPlat.yml@templates to v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates, running on ProjectReunionESPool-2022 with MMS2022-1ES-GPT.

This aligns the GitHub release pipeline with the PyPI release pipeline (#473) on the same 1ES template and pool. Trigger model is unchanged: trigger: none, manual queue only, OFFICIAL_BUILD_ID parameter required, release/* branch condition on the stage.

Pipeline shape

The single-job pipeline is split into two jobs because 1ES Official only allows GitHubRelease@1 inside templateContext.type: releaseJob, and a releaseJob cannot run DownloadPipelineArtifact@2:

  1. Prepare (pool.type: windows) — downloads the official build artifacts by OFFICIAL_BUILD_ID, stages *.whl + parquet runtime check rules into $(Build.SourcesDirectory)/release_assets, publishes them as pipeline artifact GitHubReleaseAssets via templateContext.outputs.
  2. CreateGitHubRelease (templateContext.type: releaseJob, isProduction: true) — consumes GitHubReleaseAssets via templateContext.inputs, derives the version from the wheel filename (so no source checkout is needed), invokes GitHubRelease@1 to create the tag + release.

Switch modelkit-release-github.yml to extend
v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates, running on the
ProjectReunionESPool-2022 pool with MMS2022-1ES-GPT.

Split the original single-job pipeline into Prepare (downloads official
build, stages wheels + parquets) and CreateGitHubRelease (releaseJob
consuming the staged artifact), since 1ES Official only permits
GitHubRelease@1 inside templateContext.type: releaseJob and that job
type cannot run DownloadPipelineArtifact@2. Version is now derived from
the wheel filename instead of pyproject.toml so the release job needs
no source checkout.
@timenick timenick enabled auto-merge (squash) May 14, 2026 06:18
@timenick timenick merged commit b7fae2f into main May 14, 2026
9 checks passed
@timenick timenick deleted the zhiwang/release-github-pipeline branch May 14, 2026 06:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants