Skip to content

ci: migrate macOS jobs to tart VM runner - #1335

Open
alee1246 wants to merge 6 commits into
developfrom
alee1246/CIEXE/migrate-to-tart-runners
Open

ci: migrate macOS jobs to tart VM runner#1335
alee1246 wants to merge 6 commits into
developfrom
alee1246/CIEXE/migrate-to-tart-runners

Conversation

@alee1246

@alee1246 alee1246 commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Migrate the macOS GitLab CI jobs from dedicated macos:sonoma / specific:true runners to virtualized macos:tart runners, using the repo-specific tart VM image (dd-sdk-reactnative-sonoma).

Migrated jobs: test:lint, test:js, test:build, test:native-android, test:native-ios, test:native-ios-sr, test:native-ios-newarch, and build-and-upload:app (benchmarks pipeline).

VM image: packer/macos-vm/team/dd-sdk-reactnative-sonoma.pkr.hcl486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/ci-platform-machine-images/tart-vm:dd-sdk-reactnative-sonoma-latest

Motivation

The virtualized tart runners have a number of benefits over dedicated macOS runners:

  • Better isolation between workloads — each job runs in a fresh VM
  • Decoupled host toolchain — the host is independent of each team's toolchain requirements
  • Concurrency — two jobs can run simultaneously on the same mac2.metal host
  • Higher utilization of mac2.metal hosts → cost reduction from needing fewer instances
  • Faster provisioning and teardown vs. the dedicated runner lifecycle

Changes

File Change
.gitlab-ci.yml Switch all test:* job tags from macos:sonoma / specific:true to macos:tart and pin the repo-specific tart VM image
benchmarks/.benchmarks-ci.yml Switch build-and-upload:app tags to macos:tart and pin the repo-specific tart VM image

Test plan

  • Manually trigger the pipeline and verify the test:* jobs pass on the tart runner
  • Trigger a benchmark pipeline and verify build-and-upload:app passes on the tart runner

🤖 Generated with Claude Code

Passing build job

https://gitlab.ddbuild.io/DataDog/dd-sdk-reactnative/-/jobs/1871065405

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@datadog-official

datadog-official Bot commented Jul 8, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 07aaa09 | Docs | Datadog PR Page | Give us feedback!

alee1246 and others added 3 commits July 8, 2026 18:56
The test:native-android job (and benchmarks build-and-upload:app) failed
with "Unable to locate a Java Runtime" when running sdkmanager. Java 17
is installed in the tart VM image, but openjdk@17 is keg-only and the
image only exports JAVA_HOME/PATH in ~/.zshrc — which the tart runner's
non-interactive shell does not source. Export JAVA_HOME/PATH in the
install-android-sdk snippet so sdkmanager can find Java.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
vault's aws auth does not honor AWS_EC2_METADATA_SERVICE_ENDPOINT on the tart VMs, so it cannot reach the IAM-proxy creds. The AWS CLI does; export the resolved creds so vault's credential chain picks them up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@alee1246
alee1246 marked this pull request as ready for review July 17, 2026 20:44
@alee1246
alee1246 requested a review from a team as a code owner July 17, 2026 20:44
Copilot AI review requested due to automatic review settings July 17, 2026 20:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Migrates the repository’s macOS GitLab CI workloads from dedicated macos:sonoma runners to macos:tart virtualized runners, pinning jobs to the repo-specific tart VM image to ensure consistent toolchains and isolation.

Changes:

  • Switch macOS CI jobs to macos:tart and pin the tart VM image for test:* jobs and the benchmarks build-and-upload:app job.
  • Update Android SDK install snippets to set JAVA_HOME and prepend the JDK to PATH (for SDK manager / tooling).
  • Update benchmarks secret retrieval to export AWS credentials in CI before Vault AWS auth.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
benchmarks/scripts/secrets/get-secret.sh Exports AWS credentials in CI prior to Vault AWS login.
benchmarks/.benchmarks-ci.yml Moves benchmarks build job to tart runner + pinned VM image; updates Android SDK snippet JAVA env.
.gitlab-ci.yml Moves all test:* macOS jobs to tart runner + pinned VM image; updates Android SDK snippet JAVA env.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread benchmarks/scripts/secrets/get-secret.sh
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread benchmarks/scripts/secrets/get-secret.sh
Comment thread .gitlab-ci.yml
Comment thread benchmarks/.benchmarks-ci.yml
Comment thread .gitlab-ci.yml Outdated
Comment thread benchmarks/.benchmarks-ci.yml Outdated
- Fix JAVA_HOME/install-jdk-17 ordering in test:native-android and
  build-and-upload:app so JDK 17 is installed before the Android SDK
  snippet relies on it
- Centralize the duplicated tart VM image string into a TART_VM_IMAGE
  variable in .gitlab-ci.yml and benchmarks/.benchmarks-ci.yml
- Check the exit status of `aws configure export-credentials` before
  eval'ing its output in get-secret.sh, instead of failing silently
Copilot AI review requested due to automatic review settings July 17, 2026 21:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread benchmarks/scripts/secrets/get-secret.sh
Comment thread .gitlab-ci.yml
Comment thread benchmarks/.benchmarks-ci.yml
@sbarrio
sbarrio requested a review from barboraplasovska July 20, 2026 07:04
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.

2 participants