Skip to content

CHEF-34748: Add darwin (macOS aarch64) to Habitat release CI pipeline - #189

Merged
nikhil2611 merged 2 commits into
nikhil/CHEF-34747-macos-arm-buildfrom
sanjain/CHEF-34748/mac_habitat_release_ci
Jul 20, 2026
Merged

CHEF-34748: Add darwin (macOS aarch64) to Habitat release CI pipeline#189
nikhil2611 merged 2 commits into
nikhil/CHEF-34747-macos-arm-buildfrom
sanjain/CHEF-34748/mac_habitat_release_ci

Conversation

@sanjain-progress

Copy link
Copy Markdown
Contributor

Summary

Adds aarch64-darwin as a Habitat build target and updates the Buildkite pre-command hook to support macOS workers for the release pipeline.

Changes

  • .bldr.toml (new): Defines Habitat build targets including aarch64-darwin alongside existing x86_64-linux, aarch64-linux, and x86_64-windows.
  • .buildkite/hooks/pre-command: Adds macOS/darwin detection — when the Buildkite label indicates a macOS build, retrieves HAB_AUTH_TOKEN from Vault (via vault-util-init) instead of AWS SSM, since macOS workers do not have access to AWS SSM.

How it works

  • The hook checks the BUILDKITE_LABEL for macOS/darwin patterns
  • On macOS: uses vault-util-init + vault kv get to fetch the Habitat auth token from Chef Vault
  • On Linux/Windows: continues using the existing AWS SSM parameter path (no change)

Testing

  • Linux/Windows pipeline behavior is unchanged (else branch)
  • macOS path will be validated once the darwin workers are available in Buildkite

Add aarch64-darwin as a build target in .bldr.toml and update the
Buildkite pre-command hook to support macOS workers by retrieving
HAB_AUTH_TOKEN from Vault instead of AWS SSM when the build label
indicates a macOS/darwin platform.

Changes:
- .bldr.toml: Add new file with build_targets including aarch64-darwin
- .buildkite/hooks/pre-command: Detect macOS build labels and use
  vault-util-init + Vault KV to fetch the Habitat auth token, falling
  back to the existing AWS SSM path for Linux/Windows workers

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
@sanjain-progress
sanjain-progress requested review from a team and jaymzh as code owners July 16, 2026 06:57
@sanjain-progress
sanjain-progress marked this pull request as draft July 16, 2026 06:58
Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
@sanjain-progress
sanjain-progress changed the base branch from main to nikhil/CHEF-34747-macos-arm-build July 17, 2026 10:10
@sanjain-progress
sanjain-progress marked this pull request as ready for review July 17, 2026 12:01
@sanjain-progress sanjain-progress added the ai-assisted Work completed with AI assistance following Progress AI policies label Jul 17, 2026
@sanjain-progress sanjain-progress self-assigned this Jul 17, 2026
@nikhil2611
nikhil2611 merged commit c4f0178 into nikhil/CHEF-34747-macos-arm-build Jul 20, 2026
49 checks passed
@nikhil2611
nikhil2611 deleted the sanjain/CHEF-34748/mac_habitat_release_ci branch July 20, 2026 13:11
nikhil2611 pushed a commit that referenced this pull request Jul 20, 2026
…#189)

* Add darwin (macOS aarch64) to Habitat release CI pipeline

Add aarch64-darwin as a build target in .bldr.toml and update the
Buildkite pre-command hook to support macOS workers by retrieving
HAB_AUTH_TOKEN from Vault instead of AWS SSM when the build label
indicates a macOS/darwin platform.

Changes:
- .bldr.toml: Add new file with build_targets including aarch64-darwin
- .buildkite/hooks/pre-command: Detect macOS build labels and use
  vault-util-init + Vault KV to fetch the Habitat auth token, falling
  back to the existing AWS SSM path for Linux/Windows workers

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

* CHEF-34748: fix final newline for CI check

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

---------

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
Co-authored-by: Sachin Jain <Sachin.jain@chef.io>
nikhil2611 pushed a commit that referenced this pull request Jul 20, 2026
…#189)

* Add darwin (macOS aarch64) to Habitat release CI pipeline

Add aarch64-darwin as a build target in .bldr.toml and update the
Buildkite pre-command hook to support macOS workers by retrieving
HAB_AUTH_TOKEN from Vault instead of AWS SSM when the build label
indicates a macOS/darwin platform.

Changes:
- .bldr.toml: Add new file with build_targets including aarch64-darwin
- .buildkite/hooks/pre-command: Detect macOS build labels and use
  vault-util-init + Vault KV to fetch the Habitat auth token, falling
  back to the existing AWS SSM path for Linux/Windows workers

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

* CHEF-34748: fix final newline for CI check

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

---------

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
Co-authored-by: Sachin Jain <Sachin.jain@chef.io>
Signed-off-by: nikhil2611 <ngupta@progress.com>
nikhil2611 added a commit that referenced this pull request Jul 21, 2026
* CHEF-34747: Add macOS ARM64 (aarch64-darwin) Habitat plan

- Add native macOS ARM64 build support for knife
- Use clang/cmake for native compilation instead of gcc
- Configure SSL certificates via core/cacerts for license verification
- Support knife plugins (ec2, google, windows) via habitat bundle group
- Add DYLD_LIBRARY_PATH for libarchive dynamic linking

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: nikhil2611 <ngupta@progress.com>

* CHEF-34747: Add DYLD to cspell dictionary for macOS support

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: nikhil2611 <ngupta@progress.com>

* CHEF-34747: Add GitHub Actions workflow for macOS ARM Habitat build

- Add habitat-build.yml workflow for macos-14 (ARM64) builds
- Add test.darwin.sh for macOS-specific testing without hab supervisor
- Workflow triggers on PR and push to main branch

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: nikhil2611 <ngupta@progress.com>

* CHEF-34748: Add darwin (macOS aarch64) to Habitat release CI pipeline (#189)

* Add darwin (macOS aarch64) to Habitat release CI pipeline

Add aarch64-darwin as a build target in .bldr.toml and update the
Buildkite pre-command hook to support macOS workers by retrieving
HAB_AUTH_TOKEN from Vault instead of AWS SSM when the build label
indicates a macOS/darwin platform.

Changes:
- .bldr.toml: Add new file with build_targets including aarch64-darwin
- .buildkite/hooks/pre-command: Detect macOS build labels and use
  vault-util-init + Vault KV to fetch the Habitat auth token, falling
  back to the existing AWS SSM path for Linux/Windows workers

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

* CHEF-34748: fix final newline for CI check

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>

---------

Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
Co-authored-by: Sachin Jain <Sachin.jain@chef.io>
Signed-off-by: nikhil2611 <ngupta@progress.com>

* Update workflow-change-guard to use approval pattern from cookstyle

- Replace blocking approach with approval-based workflow guard
- Add workflow_guard environment requirement for workflow changes
- Update workflow-change-guard.yml to match cookstyle pattern
- Remove unnecessary pull-requests permission from habitat-build.yml
- Workflow changes on pull_request_target now require manual approval

Signed-off-by: nikhil2611 <ngupta@progress.com>

---------

Signed-off-by: nikhil2611 <ngupta@progress.com>
Signed-off-by: Sachin Jain <Sachin.jain@chef.io>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Sachin Jain <90894396+sanjain-progress@users.noreply.github.com>
Co-authored-by: Sachin Jain <Sachin.jain@chef.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted Work completed with AI assistance following Progress AI policies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants