{Packaging} Add Linux standalone tarball and Cask validation - #33927
Conversation
|
Hi Naga Nandyala (@naga-nandyala), |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR extends the standalone release/validation pipeline to cover both macOS and Linux artifacts and produces a single cross-platform Homebrew Cask that can install from GitHub releases or local file:// paths for validation.
Changes:
- Add Linux standalone tarball builds (arm64 + x86_64) alongside the existing macOS flow.
- Generate/test a four-platform Homebrew Cask (temp tap + offline install checks) and update publishing to include Linux artifacts.
- Introduce supporting pipeline templates and resources (Linuxbrew setup, PAT retrieval template, third-party notices packaging).
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/release/standalone/templates/azure-cli.rb.in | Update cask template to support macOS+Linux artifacts (multi-platform URL/SHA handling). |
| scripts/release/standalone/templates/az_launcher.sh.in | Detect Linuxbrew Cask installs and locate Homebrew Python on Linux. |
| scripts/release/standalone/resources/ThirdPartyNotices.txt | Add third-party notice bundle for inclusion in standalone installs. |
| scripts/release/standalone/cask_generate.py | Expand cask generation inputs to include macOS+Linux SHA256 values and updated template path. |
| scripts/release/standalone/build_binary_tar_gz.py | Add Linux platform support, requirements selection by OS, and architecture validation. |
| azure-pipelines.yml | Wire Linux build jobs into the main pipeline and switch to standalone templates/parameters. |
| .azure-pipelines/templates/standalone/publish-jobs.yml | Publish GitHub release assets for macOS+Linux and add Linux published-cask install test. |
| .azure-pipelines/templates/standalone/get-github-pat-token.yml | Add reusable Key Vault PAT retrieval step for GitHub operations. |
| .azure-pipelines/templates/standalone/cask-generation-and-tests.yml | Generate/test cross-platform cask and add Linux temp-tap + offline-install jobs. |
| .azure-pipelines/templates/macos/macos-sign-notarize-jobs.yml | Parameterize ESRP Apple KeyCode and rename final tarball job for macOS. |
| .azure-pipelines/templates/macos/macos-build-jobs.yml | Switch macOS build step to the standalone tarball builder. |
| .azure-pipelines/templates/linux/setup-homebrew.yml | Add Linuxbrew installation/setup helper for pipeline jobs. |
| .azure-pipelines/templates/linux/linux-build-jobs.yml | Add Linux standalone tarball build + smoke test + SBOM publishing jobs. |
| .azure-pipelines/mac-and-linux-standalone-release.yml | Add an ad hoc macOS+Linux validation pipeline wiring build/test/publish templates. |
Suppressed comments (2)
scripts/release/standalone/templates/azure-cli.rb.in:6
- Homebrew Cask DSL doesn’t support
os macos: ..., linux: ..., andsha256can’t be keyed by custom symbols likearm64_linux/x86_64_linux. This will likely break cask evaluation on both platforms. Useon_macos/on_linuxblocks, each with anarch-keyedsha256and platform-specificurl.
.azure-pipelines/templates/standalone/publish-jobs.yml:373 - The publish summary still claims only macOS architectures (Apple Silicon + Intel), but this template now consumes and publishes Linux artifacts too. This makes the printed summary misleading for operators.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This reverts commit 87318e4.
45bc09f to
0e5a8ef
Compare
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
Live test skipped⏭️ Skipping the live test for this revision because no new test file was added ( The live-test pipeline runs only the test files a PR changes, so there is nothing to execute for this commit. This is informational — a regression test is encouraged where it makes sense, but not required. If a test file is added in a later commit, the live test will run automatically. |
🤖 PR Validation — ️✔️ All clear
Related command
N/A - packaging and release-pipeline infrastructure only.
Description
Extend standalone Azure CLI release validation to Linux ARM64 and x86_64 tarballs, alongside the existing macOS flow and Azure-managed Homebrew Cask.
main.verified:Cask parameter.Testing Guide
mac-and-linux-standalone-releasepipeline in thereleaseproject.brew uninstall --cask Azure/homebrew-azure-cli/azure-cli command -v azValidated on Linux with Azure CLI
2.89.0: Cask installation andaz version --output jsonsucceeded, and uninstall removed the Cask andazlink.History Notes
None. This is not a customer-facing command change.
azcommand; the Command Guidelines do not apply.