Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 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
56 changes: 36 additions & 20 deletions .github/workflows/buildandtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ jobs:

Comment thread
sentry[bot] marked this conversation as resolved.
job_test:
name: Test
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
Comment thread
cursor[bot] marked this conversation as resolved.
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -36,12 +36,12 @@ jobs:

job_lint:
name: Lint
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -66,28 +66,44 @@ jobs:
clang --version
clang-format --version

- name: Install Swiftly
- name: Install Swiftly and Swift
run: |
SWIFTLY_FILE="swiftly-$(uname -m).tar.gz"
curl -sL https://download.swift.org/swiftly/linux/swiftly-x86_64.tar.gz -o $SWIFTLY_FILE
tar zxf $SWIFTLY_FILE
# Install Swift dependencies first
sudo apt-get update
sudo apt-get -y install libcurl4-openssl-dev libz3-dev

ARCH=$(uname -m)
SWIFTLY_FILE="swiftly-${ARCH}.tar.gz"
curl -sL "https://download.swift.org/swiftly/linux/swiftly-${ARCH}.tar.gz" -o "$SWIFTLY_FILE"
tar zxf "$SWIFTLY_FILE"

./swiftly init --quiet-shell-followup
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
hash -r
sudo apt-get -y install libcurl4-openssl-dev

# Install Swift 5.10 (compatible with SwiftLint 0.61.0)
swiftly install 5.10
swift --version

# Export Swift toolchain path for SwiftLint's SourceKit
# Dynamically determine the path from the swift binary location
SWIFT_BIN=$(which swift)
SWIFT_TOOLCHAIN=$(dirname $(dirname "$SWIFT_BIN"))
echo "LINUX_SOURCEKIT_LIB_PATH=${SWIFT_TOOLCHAIN}/lib/swift/linux" >> $GITHUB_ENV
Comment thread
cursor[bot] marked this conversation as resolved.
Outdated

- name: Lint
run: yarn lint
run: |
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
yarn lint
Comment thread
cursor[bot] marked this conversation as resolved.

job_check_integrity:
name: Check package integrity
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -106,12 +122,12 @@ jobs:

job_build:
name: Build
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
Comment thread
sentry[bot] marked this conversation as resolved.
package-manager-cache: false
Expand Down Expand Up @@ -148,14 +164,14 @@ jobs:

job_type_check:
name: Type Check Typescript 3.8
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -181,12 +197,12 @@ jobs:
run: yarn type-check
job_circular_dep_check:
name: Circular Dependency Check
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -210,7 +226,7 @@ jobs:

job_bundle:
name: Bundle
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [job_test, job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
strategy:
Expand All @@ -221,7 +237,7 @@ jobs:
dev: [true, false]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
uses: ./.github/workflows/skip-ci.yml

codegen:
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
strategy:
Expand All @@ -36,7 +36,7 @@ jobs:
--targetPlatform ios
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: npm i -g corepack
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/e2e-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
name: iOS
appPlain: performance-tests/test-app-plain.ipa
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
name: Android
appPlain: performance-tests/TestAppPlain/android/app/build/outputs/apk/release/app-release.apk
steps:
Expand Down Expand Up @@ -205,7 +205,7 @@ jobs:
rn-version: '0.84.0'
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
Comment thread
alwx marked this conversation as resolved.
exclude:
# exclude JSC for new RN versions (keeping the matrix manageable)
- rn-version: '0.84.0'
Expand Down Expand Up @@ -332,9 +332,9 @@ jobs:
include:
- platform: ios
rn-version: '0.84.0'
runs-on: macos-26
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
Expand Down
20 changes: 17 additions & 3 deletions .github/workflows/native-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ jobs:

test-ios:
name: ios
runs-on: macos-15
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Enable Corepack
run: npm i -g corepack
run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand All @@ -44,6 +44,16 @@ jobs:
- name: Install SDK JS Dependencies
run: yarn install

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3.0'
env:
# Disable rbenv to avoid .ruby-version conflicts
RBENV_VERSION: system

- name: Install CocoaPods
run: gem install cocoapods

- name: Install App Pods
working-directory: packages/core/RNSentryCocoaTester
run: pod install
Expand All @@ -56,6 +66,10 @@ jobs:
env:
SCHEME: RNSentryCocoaTester
CONFIGURATION: Release
# Fix for Xcode 26+ with MetalToolchain: use default Xcode toolchain to avoid
# missing Swift compatibility libraries (swiftCompatibility56, etc.)
# See: https://github.com/actions/runner-images/issues/13135
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault
run: |
# Find first available iPhone simulator from latest iOS runtime
DEVICE_ID=$(xcrun simctl list devices available iPhone -j | jq -r '
Expand Down Expand Up @@ -83,7 +97,7 @@ jobs:

test-android:
name: android
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ permissions:

jobs:
release:
runs-on: ubuntu-latest
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wdyt of leaving the release worflow on the GH runners? The releases are once a week and the gain from Cirruslabs might be small.
If we decide to include them let's run a test release and retract it (similar to what we do with Craft bumps #5694 (review)) to make sure that the flow won't break.

name: Release a new version
steps:
- name: Get auth token
Expand All @@ -33,7 +33,7 @@ jobs:
token: ${{ steps.token.outputs.token }}
fetch-depth: 0

- run: npm i -g corepack
- run: corepack enable

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
Expand Down
20 changes: 13 additions & 7 deletions .github/workflows/sample-application-expo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,24 +43,25 @@ jobs:
build-type: ['dev', 'production']
include:
- platform: ios
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ubuntu-latest
- platform: web
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ubuntu-latest
exclude:
- platform: 'android'
ios-use-frameworks: 'dynamic-frameworks'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Enable Corepack (NPM)
if: ${{ matrix.platform == 'android' }}
run: npm i -g corepack

- name: Enable Corepack
if: ${{ matrix.platform != 'android' }}
run: corepack enable

- name: Install Ninja
if: ${{ matrix.platform == 'android' }}
run: sudo apt-get update && sudo apt-get install -y ninja-build

Comment thread
alwx marked this conversation as resolved.
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand Down Expand Up @@ -125,6 +126,11 @@ jobs:
- name: Build iOS App
if: ${{ matrix.platform == 'ios' }}
working-directory: samples/expo/ios
env:
# Fix for Xcode 26+ with MetalToolchain: use default Xcode toolchain to avoid
# missing Swift compatibility libraries (swiftCompatibility56, etc.)
# See: https://github.com/actions/runner-images/issues/13135
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault
run: |
[[ "${{ matrix.build-type }}" == "production" ]] && CONFIG='Release' || CONFIG='Debug'
echo "Building $CONFIG"
Expand Down
29 changes: 18 additions & 11 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ jobs:
build-type: ['dev', 'production']
include:
- platform: ios
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
- platform: macos
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ubuntu-latest
exclude:
- platform: 'android'
ios-use-frameworks: 'dynamic-frameworks'
Expand All @@ -69,13 +69,14 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Enable Corepack (NPM)
if: ${{ matrix.platform == 'android' }}
run: npm i -g corepack

- name: Enable Corepack
if: ${{ matrix.platform != 'android' }}
run: corepack enable

- name: Install Ninja
if: ${{ matrix.platform == 'android' }}
run: sudo apt-get update && sudo apt-get install -y ninja-build

Comment thread
alwx marked this conversation as resolved.
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
package-manager-cache: false
Expand Down Expand Up @@ -135,6 +136,11 @@ jobs:
- name: Build iOS App
if: ${{ matrix.platform == 'ios' }}
working-directory: ${{ env.REACT_NATIVE_SAMPLE_PATH }}
env:
# Fix for Xcode 26+ with MetalToolchain: use default Xcode toolchain to avoid
# missing Swift compatibility libraries (swiftCompatibility56, etc.)
# See: https://github.com/actions/runner-images/issues/13135
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault
run: |
[[ "${{ matrix.build-type }}" == "production" ]] && export CONFIG='Release' || export CONFIG='Debug'

Expand Down Expand Up @@ -210,7 +216,7 @@ jobs:
matrix:
include:
- platform: ios
runs-on: macos-15
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
rn-architecture: 'new'
ios-use-frameworks: 'no-frameworks'
build-type: 'production'
Expand All @@ -228,10 +234,6 @@ jobs:
with:
version: ${{env.MAESTRO_VERSION}}

- name: Install Ninja
if: ${{ matrix.platform == 'android' }}
run: sudo apt-get update && sudo apt-get install -y ninja-build

- name: Download iOS App Archive
if: ${{ matrix.platform == 'ios' }}
uses: actions/download-artifact@v7
Expand All @@ -258,7 +260,12 @@ jobs:
unzip ${{ env.ANDROID_APP_ARCHIVE_PATH }}
rm app-androidTest.apk

- name: Enable Corepack (NPM)
if: ${{ matrix.platform == 'android' }}
run: npm i -g corepack

- name: Enable Corepack
if: ${{ matrix.platform != 'android' }}
run: corepack enable

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/testflight.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches:
- main
- alwx/ci/macos-tahoe-cl-runners
Comment thread
cursor[bot] marked this conversation as resolved.
- alwx/experiment/cirrus-labs-for-everythin
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Experimental branch left in testflight trigger

Medium Severity

The branch alwx/experiment/cirrus-labs-for-everythin was added as a push trigger for the Testflight upload workflow. This appears to be a temporary developer branch used for testing CI changes and was likely not intended to remain in the final PR. The old experimental branch alwx/ci/macos-tahoe-cl-runners was supposed to be removed (as noted in the PR discussion), but instead it was replaced with another experimental branch. This will trigger Testflight uploads on pushes to that branch, consuming CI resources unnecessarily.

Fix in Cursorย Fix in Web

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

gonna be removed before merge!


pull_request:
paths:
Expand Down
Loading