Skip to content

Commit

Permalink
Try to parametrize executors to use the min Xcode version for some jo…
Browse files Browse the repository at this point in the history
…bs (#39602)

Summary:
App can be submitted to the app store by using Xcode 14.1 as min Xcode version.
Right now we are testing everything against the latests Xcode, but it would be good to have some tests to check that we don't break the flow for people stuck on older Xcodes.
We already had issues like these in the past, unfortunately.

Plus, we are making some changes using C++20 which we don't know whether they are properly supported by older versions of Xcode.
This change should give us confidence on those changes too.

## Changelog:
[Internal] - Use Xcode 14.1 for some tests

Pull Request resolved: #39602

Test Plan: CircleCI is green

Reviewed By: NickGerleman

Differential Revision: D49540292

Pulled By: cipolleschi

fbshipit-source-id: 71c07293598fd5b1f73f6d7d9425f385aa12fc4e
  • Loading branch information
cipolleschi authored and facebook-github-bot committed Oct 23, 2023
1 parent e8a0f0d commit fdd62e9
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 6 deletions.
12 changes: 12 additions & 0 deletions .circleci/configurations/commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,18 @@ commands:
type: string

steps:
- run:
name: Move to Node 18 if Needed
command: |
node_version=$(node -v)
major_version=$(echo $node_version | cut -c 2- | cut -d '.' -f 1)
if [[ $major_version < 18 ]]; then
nvm install 18.18.0
nvm alias default 18.18.0
else
echo 'We have the right node version!'
fi
- restore_cache:
keys:
- << parameters.yarn_base_cache_key >>-{{ arch }}-{{ checksum "yarn.lock" }}
Expand Down
7 changes: 7 additions & 0 deletions .circleci/configurations/executors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,10 @@ executors:
resource_class: macos.x86.medium.gen2
environment:
- BUILD_FROM_SOURCE: true
reactnativeios-lts:
<<: *defaults
macos:
xcode: '14.1.0'
resource_class: macos.x86.medium.gen2
environment:
- BUILD_FROM_SOURCE: true
13 changes: 11 additions & 2 deletions .circleci/configurations/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,6 @@ jobs:
# JOBS: Test iOS Template
# -------------------------
test_ios_template:
executor: reactnativeios
parameters:
flavor:
default: "Debug"
Expand Down Expand Up @@ -424,6 +423,11 @@ jobs:
cocoapods_cache_key:
type: string
default: *template_cocoapods_cache_key
executor:
description: The executor to use
default: reactnativeios
type: string
executor: << parameters.executor >>
environment:
- PROJECT_NAME: "iOSTemplateProject"
- HERMES_WS_DIR: *hermes_workspace_root
Expand Down Expand Up @@ -492,7 +496,7 @@ jobs:
# JOBS: Test iOS RNTester
# -------------------------
test_ios_rntester:
executor: reactnativeios

parameters:
jsengine:
default: "Hermes"
Expand All @@ -517,6 +521,11 @@ jobs:
description: whether unit tests should run or not.
default: false
type: boolean
executor:
description: The executor to use
default: reactnativeios
type: string
executor: << parameters.executor >>
steps:
- checkout_code_with_cache
- run_yarn
Expand Down
2 changes: 2 additions & 0 deletions .circleci/configurations/test_workflows/testAll.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
ruby_version: "3.2.0"
architecture: "NewArch"
flavor: "Debug"
executor: reactnativeios-lts
- test_ios_template:
requires:
- build_npm_package
Expand All @@ -82,6 +83,7 @@
name: "Test RNTester with Ruby 3.2.0"
ruby_version: "3.2.0"
architecture: "NewArch"
executor: reactnativeios-lts
- test_ios_rntester:
requires:
- build_hermes_macos
Expand Down
2 changes: 2 additions & 0 deletions .circleci/configurations/test_workflows/testIOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
ruby_version: "3.2.0"
architecture: "NewArch"
flavor: "Debug"
executor: reactnativeios-lts
- test_ios_template:
requires:
- build_npm_package
Expand All @@ -73,6 +74,7 @@
name: "Test RNTester with Ruby 3.2.0"
ruby_version: "3.2.0"
architecture: "NewArch"
executor: reactnativeios-lts
- test_ios_rntester:
requires:
- build_hermes_macos
Expand Down
8 changes: 4 additions & 4 deletions .circleci/configurations/top_level.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@ references:
hermes_dsym_release_cache_key: &hermes_dsym_release_cache_key v1-hermes-release-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
# Cocoapods - RNTester
pods_cache_key: &pods_cache_key v10-pods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock.bak" }}-{{ checksum "packages/rn-tester/Podfile" }}
cocoapods_cache_key: &cocoapods_cache_key v9-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock" }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}
rntester_podfile_lock_cache_key: &rntester_podfile_lock_cache_key v7-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}
cocoapods_cache_key: &cocoapods_cache_key v10-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock" }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}
rntester_podfile_lock_cache_key: &rntester_podfile_lock_cache_key v8-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}

# Cocoapods - Template
template_cocoapods_cache_key: &template_cocoapods_cache_key v4-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile.lock" }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock" }}
template_podfile_lock_cache_key: &template_podfile_lock_cache_key v4-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock" }}
template_cocoapods_cache_key: &template_cocoapods_cache_key v5-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile.lock" }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock" }}
template_podfile_lock_cache_key: &template_podfile_lock_cache_key v5-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock" }}

# Windows
windows_yarn_cache_key: &windows_yarn_cache_key v1-win-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }}
Expand Down

0 comments on commit fdd62e9

Please sign in to comment.