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
4 changes: 2 additions & 2 deletions .github/actions/install-boost/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ runs:
if: runner.os == 'macOS'
shell: bash
run: |
brew install boost
Copy link
Member Author

Choose a reason for hiding this comment

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

aside: Temporary PIN. Then there is a followup PR. I wanted to start with a cleanly working CI.

echo "BOOST_ROOT=$(brew --prefix boost)" >> $GITHUB_OUTPUT
brew install boost@1.85
echo "BOOST_ROOT=$(brew --prefix boost@1.85)" >> $GITHUB_OUTPUT

- name: Determine root
id: determine-root
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-openssl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ runs:
if: runner.os == 'Windows'
shell: bash
run: |
choco install openssl --version 3.5.4 -y --no-progress
Copy link
Member Author

@kinyoklion kinyoklion Mar 10, 2026

Choose a reason for hiding this comment

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

aside: chocolatey removes versions pretty consistently. This one is gone, so the builds break.

choco install openssl --version 3.6.1 -y --no-progress
if [ -d "C:\Program Files\OpenSSL-Win64" ]; then
echo "OPENSSL_ROOT_DIR=C:\Program Files\OpenSSL-Win64" >> $GITHUB_OUTPUT
else
Expand Down
26 changes: 16 additions & 10 deletions .github/actions/sdk-release/action.yml
Copy link
Member Author

@kinyoklion kinyoklion Mar 10, 2026

Choose a reason for hiding this comment

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

aside: Adding an ARM arch release artifact. Previously it was only inter.

aside: We may consider dropping the intel version, but probably not until apple drops it in their latest OS.

Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ inputs:
required: true
sdk_cmake_target:
description: 'CMake target of the sdk, e.g. launchdarkly-cpp-client.'
mac_artifact_arch:
description: 'Architecture label for macOS artifacts (x64 or arm64).'
required: false
default: 'x64'
outputs:
hashes-linux:
description: "base64-encoded sha256 hash of linux build artifacts"
Expand Down Expand Up @@ -272,21 +276,21 @@ runs:
OPENSSL_ROOT_DIR: ${{ steps.install-openssl.outputs.OPENSSL_ROOT_DIR }}
CURL_ROOT: ${{ steps.install-curl.outputs.CURL_ROOT }}

- name: Archive Release Mac - AppleClang/x64/Static
- name: Archive Release Mac - AppleClang/${{ inputs.mac_artifact_arch }}/Static
if: runner.os == 'macOS'
uses: thedoctor0/zip-release@0.7.1
with:
path: 'build-static/release'
type: 'zip'
filename: 'mac-clang-x64-static.zip'
filename: 'mac-clang-${{ inputs.mac_artifact_arch }}-static.zip'

- name: Archive Release Mac - AppleClang/x64/Dynamic
- name: Archive Release Mac - AppleClang/${{ inputs.mac_artifact_arch }}/Dynamic
if: runner.os == 'macOS'
uses: thedoctor0/zip-release@0.7.1
with:
path: 'build-dynamic/release'
type: 'zip'
filename: 'mac-clang-x64-dynamic.zip'
filename: 'mac-clang-${{ inputs.mac_artifact_arch }}-dynamic.zip'

- name: Determine CURL artifact suffix for server SDK
if: runner.os == 'macOS'
Expand All @@ -299,36 +303,38 @@ runs:
echo "suffix=" >> $GITHUB_OUTPUT
fi

- name: Archive Release Mac - AppleClang/x64/Static/CURL
- name: Archive Release Mac - AppleClang/${{ inputs.mac_artifact_arch }}/Static/CURL
if: runner.os == 'macOS'
uses: thedoctor0/zip-release@0.7.1
with:
path: 'build-static-curl/release'
type: 'zip'
filename: 'mac-clang-x64-static-curl${{ steps.curl-suffix-macos.outputs.suffix }}.zip'
filename: 'mac-clang-${{ inputs.mac_artifact_arch }}-static-curl${{ steps.curl-suffix-macos.outputs.suffix }}.zip'

- name: Archive Release Mac - AppleClang/x64/Dynamic/CURL
- name: Archive Release Mac - AppleClang/${{ inputs.mac_artifact_arch }}/Dynamic/CURL
if: runner.os == 'macOS'
uses: thedoctor0/zip-release@0.7.1
with:
path: 'build-dynamic-curl/release'
type: 'zip'
filename: 'mac-clang-x64-dynamic-curl${{ steps.curl-suffix-macos.outputs.suffix }}.zip'
filename: 'mac-clang-${{ inputs.mac_artifact_arch }}-dynamic-curl${{ steps.curl-suffix-macos.outputs.suffix }}.zip'

- name: Hash Mac Build Artifacts for provenance
if: runner.os == 'macOS'
shell: bash
id: hash-macos
run: |
CURL_SUFFIX="${{ steps.curl-suffix-macos.outputs.suffix }}"
echo "hashes-macos=$(shasum -a 256 mac-clang-x64-static.zip mac-clang-x64-dynamic.zip mac-clang-x64-static-curl${CURL_SUFFIX}.zip mac-clang-x64-dynamic-curl${CURL_SUFFIX}.zip | base64 -b 0)" >> "$GITHUB_OUTPUT"
ARCH="${{ inputs.mac_artifact_arch }}"
echo "hashes-macos=$(shasum -a 256 mac-clang-${ARCH}-static.zip mac-clang-${ARCH}-dynamic.zip mac-clang-${ARCH}-static-curl${CURL_SUFFIX}.zip mac-clang-${ARCH}-dynamic-curl${CURL_SUFFIX}.zip | base64 -b 0)" >> "$GITHUB_OUTPUT"

- name: Upload Mac Build Artifacts
if: runner.os == 'macOS'
shell: bash
run: |
ls
CURL_SUFFIX="${{ steps.curl-suffix-macos.outputs.suffix }}"
gh release upload ${{ inputs.tag_name }} mac-clang-x64-static.zip mac-clang-x64-dynamic.zip mac-clang-x64-static-curl${CURL_SUFFIX}.zip mac-clang-x64-dynamic-curl${CURL_SUFFIX}.zip --clobber
ARCH="${{ inputs.mac_artifact_arch }}"
gh release upload ${{ inputs.tag_name }} mac-clang-${ARCH}-static.zip mac-clang-${ARCH}-dynamic.zip mac-clang-${ARCH}-static-curl${CURL_SUFFIX}.zip mac-clang-${ARCH}-dynamic-curl${CURL_SUFFIX}.zip --clobber
env:
GH_TOKEN: ${{ inputs.github_token }}
4 changes: 2 additions & 2 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:
simulate_release: true

build-test-client-mac:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand All @@ -91,7 +91,7 @@ jobs:
simulate_release: true

build-test-client-mac-curl:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
cmake_extra_args: '-DLD_CURL_NETWORKING=ON'

test-macos:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand All @@ -49,7 +49,7 @@ jobs:
platform_version: '12'

test-macos-curl:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hello-apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
smoketest:
strategy:
matrix:
os: [ "ubuntu-22.04", "macos-13", "windows-2022" ]
os: [ "ubuntu-22.04", "macos-15", "windows-2022" ]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
Expand Down
36 changes: 35 additions & 1 deletion .github/workflows/manual-sdk-release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
strategy:
matrix:
# Each of the platforms for which release-artifacts need generated.
os: [ ubuntu-22.04, windows-2022, macos-13 ]
os: [ ubuntu-22.04, windows-2022, macos-15-large ]
Copy link
Member Author

Choose a reason for hiding this comment

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

aside: The large variant is intel.

runs-on: ${{ matrix.os }}
outputs:
hashes-linux: ${{ steps.release-sdk.outputs.hashes-linux }}
Expand All @@ -58,6 +58,27 @@ jobs:
github_token: ${{secrets.GITHUB_TOKEN}}
sdk_path: ${{ needs.split-input.outputs.sdk_path}}
sdk_cmake_target: ${{ needs.split-input.outputs.sdk_cmake_target}}

release-sdk-mac-arm64:
needs: split-input
runs-on: macos-15
outputs:
hashes-macos-arm64: ${{ steps.release-sdk.outputs.hashes-macos }}
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
with:
ref: ${{ inputs.tag }}
- id: release-sdk
name: Full release of ${{ needs.split-input.outputs.sdk_path }} (macOS arm64)
uses: ./.github/actions/sdk-release
with:
tag_name: ${{ inputs.tag }}
github_token: ${{secrets.GITHUB_TOKEN}}
sdk_path: ${{ needs.split-input.outputs.sdk_path}}
sdk_cmake_target: ${{ needs.split-input.outputs.sdk_cmake_target}}
mac_artifact_arch: 'arm64'

release-sdk-provenance:
needs: [ 'release-sdk' ]
strategy:
Expand All @@ -74,3 +95,16 @@ jobs:
upload-assets: true
upload-tag-name: ${{ inputs.tag }}
provenance-name: ${{ format('{0}-multiple-provenance.intoto.jsonl', matrix.os) }}

release-sdk-mac-arm64-provenance:
needs: [ 'release-sdk-mac-arm64' ]
permissions:
actions: read
id-token: write
contents: write
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
base64-subjects: "${{ needs.release-sdk-mac-arm64.outputs.hashes-macos-arm64 }}"
upload-assets: true
upload-tag-name: ${{ inputs.tag }}
provenance-name: 'macos-arm64-multiple-provenance.intoto.jsonl'
101 changes: 98 additions & 3 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
strategy:
matrix:
# Each of the platforms for which release-artifacts need generated.
os: [ ubuntu-22.04, windows-2022, macos-13 ]
os: [ ubuntu-22.04, windows-2022, macos-15-large ]
runs-on: ${{ matrix.os }}
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-client-released == 'true'}}
Expand All @@ -48,11 +48,30 @@ jobs:
sdk_path: 'libs/client-sdk'
sdk_cmake_target: 'launchdarkly-cpp-client'

release-client-mac-arm64:
runs-on: macos-15
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-client-released == 'true'}}
outputs:
hashes-macos-arm64: ${{ steps.release-client.outputs.hashes-macos }}
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- id: release-client
name: Full release of libs/client-sdk (macOS arm64)
uses: ./.github/actions/sdk-release
with:
tag_name: ${{ needs.release-please.outputs.package-client-tag }}
github_token: ${{secrets.GITHUB_TOKEN}}
sdk_path: 'libs/client-sdk'
sdk_cmake_target: 'launchdarkly-cpp-client'
mac_artifact_arch: 'arm64'

release-server:
strategy:
matrix:
# Each of the platforms for which release-artifacts need generated.
os: [ ubuntu-22.04, windows-2022, macos-13 ]
os: [ ubuntu-22.04, windows-2022, macos-15-large ]
runs-on: ${{ matrix.os }}
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-server-released == 'true'}}
Expand All @@ -73,11 +92,30 @@ jobs:
sdk_path: 'libs/server-sdk'
sdk_cmake_target: 'launchdarkly-cpp-server'

release-server-mac-arm64:
runs-on: macos-15
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-server-released == 'true'}}
outputs:
hashes-macos-arm64: ${{ steps.release-server.outputs.hashes-macos }}
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- id: release-server
name: Full release of libs/server-sdk (macOS arm64)
uses: ./.github/actions/sdk-release
with:
tag_name: ${{ needs.release-please.outputs.package-server-tag }}
github_token: ${{secrets.GITHUB_TOKEN}}
sdk_path: 'libs/server-sdk'
sdk_cmake_target: 'launchdarkly-cpp-server'
mac_artifact_arch: 'arm64'

release-server-redis:
strategy:
matrix:
# Each of the platforms for which release-artifacts need generated.
os: [ ubuntu-22.04, windows-2022, macos-13 ]
os: [ ubuntu-22.04, windows-2022, macos-15-large ]
runs-on: ${{ matrix.os }}
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-server-redis-released == 'true'}}
Expand All @@ -98,6 +136,25 @@ jobs:
sdk_path: 'libs/server-sdk-redis-source'
sdk_cmake_target: 'launchdarkly-cpp-server-redis-source'

release-server-redis-mac-arm64:
runs-on: macos-15
needs: [ 'release-please' ]
if: ${{ needs.release-please.outputs.package-server-redis-released == 'true'}}
outputs:
hashes-macos-arm64: ${{ steps.release-server-redis.outputs.hashes-macos }}
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- id: release-server-redis
name: Full release of libs/server-sdk-redis-source (macOS arm64)
uses: ./.github/actions/sdk-release
with:
tag_name: ${{ needs.release-please.outputs.package-server-redis-tag }}
github_token: ${{secrets.GITHUB_TOKEN}}
sdk_path: 'libs/server-sdk-redis-source'
sdk_cmake_target: 'launchdarkly-cpp-server-redis-source'
mac_artifact_arch: 'arm64'

release-client-provenance:
needs: [ 'release-please', 'release-client' ]
strategy:
Expand All @@ -115,6 +172,19 @@ jobs:
upload-tag-name: ${{ needs.release-please.outputs.package-client-tag }}
provenance-name: ${{ format('{0}-client-multiple-provenance.intoto.jsonl', matrix.os) }}

release-client-mac-arm64-provenance:
needs: [ 'release-please', 'release-client-mac-arm64' ]
permissions:
actions: read
id-token: write
contents: write
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
base64-subjects: "${{ needs.release-client-mac-arm64.outputs.hashes-macos-arm64 }}"
upload-assets: true
upload-tag-name: ${{ needs.release-please.outputs.package-client-tag }}
provenance-name: 'macos-arm64-client-multiple-provenance.intoto.jsonl'

release-server-provenance:
needs: [ 'release-please', 'release-server' ]
strategy:
Expand All @@ -132,6 +202,19 @@ jobs:
upload-tag-name: ${{ needs.release-please.outputs.package-server-tag }}
provenance-name: ${{ format('{0}-server-multiple-provenance.intoto.jsonl', matrix.os) }}

release-server-mac-arm64-provenance:
needs: [ 'release-please', 'release-server-mac-arm64' ]
permissions:
actions: read
id-token: write
contents: write
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
base64-subjects: "${{ needs.release-server-mac-arm64.outputs.hashes-macos-arm64 }}"
upload-assets: true
upload-tag-name: ${{ needs.release-please.outputs.package-server-tag }}
provenance-name: 'macos-arm64-server-multiple-provenance.intoto.jsonl'

release-server-redis-provenance:
needs: [ 'release-please', 'release-server-redis' ]
strategy:
Expand All @@ -149,3 +232,15 @@ jobs:
upload-tag-name: ${{ needs.release-please.outputs.package-server-redis-tag }}
provenance-name: ${{ format('{0}-server-redis-multiple-provenance.intoto.jsonl', matrix.os) }}

release-server-redis-mac-arm64-provenance:
needs: [ 'release-please', 'release-server-redis-mac-arm64' ]
permissions:
actions: read
id-token: write
contents: write
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
base64-subjects: "${{ needs.release-server-redis-mac-arm64.outputs.hashes-macos-arm64 }}"
upload-assets: true
upload-tag-name: ${{ needs.release-please.outputs.package-server-redis-tag }}
provenance-name: 'macos-arm64-server-redis-multiple-provenance.intoto.jsonl'
2 changes: 1 addition & 1 deletion .github/workflows/server-otel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
# We don't produce release artifacts.
simulate_release: false
build-otel-mac:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/server-redis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
cmake_target: launchdarkly-cpp-server-redis-source
simulate_release: true
build-redis-mac:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
simulate_release: true

build-test-server-mac:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand All @@ -92,7 +92,7 @@ jobs:
simulate_release: true

build-test-server-mac-curl:
runs-on: macos-13
runs-on: macos-15
steps:
# https://github.com/actions/checkout/releases/tag/v4.3.0
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
Expand Down
Loading