Skip to content

ci: add Linux ARM64 support to build and release workflows#99

Open
litianningdatadog wants to merge 1 commit intomainfrom
tianning.li/new-packaging-solution
Open

ci: add Linux ARM64 support to build and release workflows#99
litianningdatadog wants to merge 1 commit intomainfrom
tianning.li/new-packaging-solution

Conversation

@litianningdatadog
Copy link
Contributor

@litianningdatadog litianningdatadog commented Mar 19, 2026

https://datadoghq.atlassian.net/browse/SVLS-8574

What does this PR do?

As AWS Lambda Lite (under NDA as of March 19, 2026) supports Linux ARM64, we add Linux ARM64 (aarch64-unknown-linux-musl) as a supported build and release target for datadog-serverless-compat, alongside the existing Linux AMD64 and Windows AMD64 targets.

We also introduced a platform-specific serverless-compatible packaging solution so the final user deployment includes only the relevant binary.

Changes

Add support for linux-arm64 release

Introduce a new Github action

  • Release Datadog Serverless Compat (Per Platform) to create the platform specific packages while keeping the existing single package solution.

Update Cargo.toml

  • Prevent the workspace glob crates/* from resolving the .claude tooling directory as a Cargo member

Testing

Built and released both targets locally:

  • linux-arm64: 5.8 MB raw → 2.0 MB after upx --lzma (33% of original)
  • linux-amd64: 7.8 MB raw → 2.3 MB after upx --lzma (29% of original)

Verified the ARM64 binary is a valid ELF 64-bit LSB executable, ARM aarch64, statically linked.

@litianningdatadog litianningdatadog requested review from a team as code owners March 19, 2026 14:25
@litianningdatadog litianningdatadog requested review from duncanpharvey and jchrostek-dd and removed request for a team March 19, 2026 14:25
- Add aarch64-unknown-linux-musl build steps to build workflow
- Remove ubuntu-24.04-arm exclusion guard
- Add ubuntu-24.04-arm to release matrix
- Add linux-arm64 artifact download, upx compression, and zip in release
- Add aarch64-linux-musl-gcc linker to .cargo/config.toml
- Add panic=abort and exclude crates/.claude to Cargo.toml
@litianningdatadog litianningdatadog force-pushed the tianning.li/new-packaging-solution branch from 058cb3d to 0e5b4f5 Compare March 19, 2026 14:45
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.

3 participants