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
1 change: 1 addition & 0 deletions .github/file-filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ js_test:
sample_react_native:
- 'samples/react-native/**'
- 'samples/react-native-macos/**'
- 'samples/react-native-tvos/**'

# Changes to the Expo sample app.
# Triggers: sample-application-expo.yml only.
Expand Down
83 changes: 83 additions & 0 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,89 @@ jobs:
name: build-sample-legacy-macos-${{ matrix.build-type }}-no-frameworks-logs
path: samples/react-native-macos/macos/*.log

build-tvos:
name: Build new tvos ${{ matrix.build-type }}
runs-on: macos-26-xlarge
needs: [diff_check, detect-changes]
if: >-
${{
needs.diff_check.outputs.skip_ci != 'true'
&& needs.detect-changes.outputs.needs_sample_react_native == 'true'
&& (needs.detect-changes.outputs.sample_react_native == 'true' || needs.detect-changes.outputs.needs_ios == 'true')
}}
env:
SENTRY_DISABLE_AUTO_UPLOAD: "true"
strategy:
fail-fast: false
matrix:
build-type: ["dev", "production"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Enable Corepack
run: corepack enable

- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
package-manager-cache: false
node-version: 22
cache: "yarn"
cache-dependency-path: yarn.lock

- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1
with:
working-directory: samples/react-native-tvos
ruby-version: "3.3.0" # based on what is used in the sample
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 1 # cache the installed gems

- name: Setup Global Xcode Tools
run: which xcbeautify || brew install xcbeautify

- name: Install SDK Dependencies
run: yarn install

- name: Build SDK
run: yarn build

- name: Install App Pods
working-directory: samples/react-native-tvos
run: |
[[ "${{ matrix.build-type }}" == "production" ]] && export ENABLE_PROD=1 || export ENABLE_PROD=0
export ENABLE_NEW_ARCH=1

./scripts/pod-install.sh

- name: Build tvOS App
working-directory: samples/react-native-tvos/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" ]] && export CONFIG='Release' || export CONFIG='Debug'
echo "Building $CONFIG"
mkdir -p "DerivedData"
derivedData="$(cd "DerivedData" ; pwd -P)"
set -o pipefail && xcodebuild \
-workspace TVOSSample.xcworkspace \
-configuration "$CONFIG" \
-scheme TVOSSample \
-destination 'generic/platform=tvOS Simulator' \
ONLY_ACTIVE_ARCH=yes \
-derivedDataPath "$derivedData" \
build \
| tee xcodebuild.log \
| xcbeautify --quieter --is-ci --disable-colored-output
Comment thread
cursor[bot] marked this conversation as resolved.

- name: Upload logs
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: build-sample-new-tvos-${{ matrix.build-type }}-no-frameworks-logs
path: samples/react-native-tvos/ios/*.log

test-ios:
name: Test ios production REV2
runs-on: ["bitrise_pool_name:tahoe"]
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"dev-packages/utils",
"samples/react-native",
"samples/react-native-macos",
"samples/react-native-tvos",
"samples/expo",
"performance-tests/TestAppPlain",
"performance-tests/TestAppSentry"
Expand Down
2 changes: 2 additions & 0 deletions samples/react-native-tvos/.bundle/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1
75 changes: 75 additions & 0 deletions samples/react-native-tvos/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
.kotlin/

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output

# Bundle artifact
*.jsbundle

# Ruby / CocoaPods
**/Pods/
/vendor/bundle/

# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

# testing
/coverage

# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
15 changes: 15 additions & 0 deletions samples/react-native-tvos/.oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "../../packages/core/node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript", "react"],
"categories": {
"correctness": "error"
},
"rules": {
"no-shadow": "off",
"typescript/no-unused-vars": ["error", { "argsIgnorePattern": "^_", "caughtErrors": "none" }],
"typescript/no-require-imports": "off",
"typescript/no-explicit-any": "off",
"react-hooks/exhaustive-deps": "warn"
},
"ignorePatterns": ["node_modules/**", "ios/**", "android/**"]
}
7 changes: 7 additions & 0 deletions samples/react-native-tvos/.prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module.exports = {
arrowParens: 'avoid',
bracketSameLine: true,
bracketSpacing: true,
singleQuote: true,
trailingComma: 'all',
};
1 change: 1 addition & 0 deletions samples/react-native-tvos/.ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.3.0
1 change: 1 addition & 0 deletions samples/react-native-tvos/.watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
17 changes: 17 additions & 0 deletions samples/react-native-tvos/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
source 'https://rubygems.org'

# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
# ruby "3.4.0"

gem 'cocoapods', '1.15.2'
gem 'activesupport', '>= 6.1.7.5', '< 7.3.0'
gem 'xcodeproj', '< 1.26.0'

# Ruby 3.4.0 has removed some libraries from the standard library.
gem 'bigdecimal'
gem 'logger'
gem 'benchmark'
gem 'mutex_m'
gem "abbrev"
gem "csv"
gem "ostruct"
Loading
Loading