Skip to content

release: add cli for aarch64-darwin#2278

Open
sespiros wants to merge 7 commits intomainfrom
sse/darwin-cli
Open

release: add cli for aarch64-darwin#2278
sespiros wants to merge 7 commits intomainfrom
sse/darwin-cli

Conversation

@sespiros
Copy link
Copy Markdown
Collaborator

@sespiros sespiros commented Mar 24, 2026

@sespiros sespiros added changelog PRs that should be part of the release notes do not merge This shouldn't be merged at this point labels Mar 24, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 24, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://edgelesssys.github.io/contrast/pr-preview/pr-2278/

Built to branch gh-pages at 2026-04-20 13:22 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

Do the documentation changes need to be backported?

Changes to /docs/docs won't be visible until the next release.
If you are fixing something in the docs that should be immediately visible, the changes needs to be made to both /docs/docs and /docs/versioned_docs/version-X.Y, where X.Y is the version of the latest minor release.
This can be done in this same PR.

  • Yes, this should be backported to the current version of the docs.
  • No, the PR only contains docs changes relevant for future versions.

@sespiros sespiros requested review from charludo and removed request for katexochen April 9, 2026 13:43
@sespiros sespiros marked this pull request as ready for review April 9, 2026 14:10
Comment thread .github/actions/release_artifacts/action.yml Outdated
Comment thread .github/actions/release_artifacts/action.yml
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/test-darwin-cli.yml Outdated
Comment thread .github/workflows/test-darwin-cli.yml Outdated
Comment thread docs/docs/howto/install-cli.md Outdated
Comment thread packages/update-contrast-releases.sh
Copy link
Copy Markdown
Collaborator

@charludo charludo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actions look good to me - thanks for doing the restructuring, as well!

Let's run the pr release artifacts workflow on this branch to test everything out again before merging. And we should probably do a release soon-ish, while all of these changes are still fresh in mind, in case something needs fixing.

@github-actions
Copy link
Copy Markdown

Pre-release artifacts on ddff508

The pre-release artifacts for this commit are available at the following link:

https://contrast-public.s3.eu-central-1.amazonaws.com/pr-artifacts/24560392946/1/

Created by @sespiros in pr_release_artifacts workflow.

@github-actions
Copy link
Copy Markdown

Pre-release artifacts on cb61f4f

The pre-release artifacts for this commit are available at the following link:

https://contrast-public.s3.eu-central-1.amazonaws.com/pr-artifacts/24567367684/1/

Created by @sespiros in pr_release_artifacts workflow.

@sespiros sespiros removed the do not merge This shouldn't be merged at this point label Apr 20, 2026
@github-actions
Copy link
Copy Markdown

Pre-release artifacts on 57de777

The pre-release artifacts for this commit are available at the following link:

https://contrast-public.s3.eu-central-1.amazonaws.com/pr-artifacts/24665171221/1/

Created by @sespiros in pr_release_artifacts workflow.

Extract the CLI build into a reusable composite action at
.github/actions/build_cli that takes a system input (e.g.
x86_64-linux, aarch64-darwin). The binary is copied to
workspace/contrast-${SYSTEM} so each platform gets a distinct artifact
name. Update artifact paths and update-contrast-releases.sh to match.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Replace the unix timestamp (date +%s) in pre-release S3 paths with GitHub
Actions run metadata.

Use github.run_id so multiple jobs in the same workflow run can
independently compute the same S3 prefix without inter-job output plumbing.
Include github.run_attempt so reruns publish to a different URL instead of
silently overwriting artifacts that may already have been shared with
testers.

This keeps x86_64-linux and aarch64-darwin uploads coordinated within one
workflow attempt while preserving immutable customer-facing links across
reruns.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Move the AWS IAM role login and S3 upload logic into a reusable
composite action at .github/actions/s3_upload.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Add a release-aarch64-darwin job that builds the CLI on macos-latest,
attaches the binary to the draft GitHub release, and uploads it to the
S3 pre-release bucket. The job runs after release-x86_64-linux to
ensure cachix is warm with the required linux derivations and the draft
release exists.

Rename the release job to release-x86_64-linux for consistency. The
publish job waits for both release jobs before marking the release as
non-draft. The update-main job downloads the darwin artifact so that
update-contrast-releases.sh can hash it into contrast-releases.json.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Add a tabbed platform selector (Linux/macOS) to the CLI install page.
The macOS tab downloads the aarch64-darwin binary and includes a note
about the Gatekeeper quarantine workaround for browser downloads.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Split the workflow into three jobs so the PR comment only posts once
all artifacts are available in S3:

1. create-release-artifacts (ubuntu-24.04): builds containers and
   linux CLI, uploads to S3, exposes the S3 URL as a job output.
2. build-darwin-cli (macos-latest): needs job 1 (for Cachix to be
   populated), builds darwin CLI, uploads to the same S3 directory.
3. notify (ubuntu-24.04): needs both, posts the PR comment using
   the S3 URL from job 1.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
readarray is a bash 4+ builtin not available on macOS which ships
bash 3.2. Replace with a while-read loop which is portable across
both bash versions.

Signed-off-by: Spyros Seimenis <sse@edgeless.systems>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog PRs that should be part of the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Release contrast cli for Mac OS on Apple Silicon (nix: aarch64-darwin)

2 participants