Skip to content

Commit ae6f903

Browse files
committed
feat: implement visionOS CI (#54)
feat: use Xcode beta globally feat: use callstack/hermes-visionos fork feat: test Hermes feat: reset cache keys fix: use callstack/hermes fix: use correct hermes source tarball fix: use never xcode version test only JSC fix: change Xcode version fix: use m1 executor feat: add cocoapods cache fix: remove hermes from cache keys fix: rbenv reset cache test: use 15.2 fix: run visionos CI on every PR (#62) chore: disable some of upstream pipelines (#33) * chore: disable some of upstream pipelines * tests: update snapshot for visionOS * chore: disable more jobs, fix isVisionOS * fix: Keyboard.js, adjust pipeline_selection.js * feat: run iOS tests every night chore: disable android tests (#39) fix: prevent from running the testAll.yml on main (#41) fix: ci on main (#44) fix: remove windows jobs (#126) * fix: remove windows jobs * fix: sync jobs.yml
1 parent 3847ac6 commit ae6f903

File tree

10 files changed

+1609
-4
lines changed

10 files changed

+1609
-4
lines changed

.circleci/config.yml

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,77 @@ jobs:
1010
docker:
1111
- image: debian:bullseye
1212
steps:
13-
- run: echo "There is nothing here, just an empty job. Everything has been moved to GitHub Action"
13+
- run:
14+
name: Install Yarn
15+
command: |
16+
apt update
17+
apt install -y wget git curl jq
18+
19+
apt-get update
20+
apt-get install -y ca-certificates curl gnupg
21+
mkdir -p /etc/apt/keyrings
22+
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
23+
24+
NODE_MAJOR=18
25+
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
26+
apt-get update
27+
28+
apt install -y nodejs
29+
npm install --global yarn
30+
- checkout
31+
- run:
32+
name: Yarn Install
33+
command: yarn install
34+
- when:
35+
condition:
36+
or:
37+
- equal: [ main, << pipeline.git.branch >> ]
38+
- matches:
39+
pattern: /0\.[0-9]+[\.[0-9]+]?-stable/
40+
value: << pipeline.git.branch >>
41+
steps:
42+
- run:
43+
name: "[Main or Stable] Create input for config to test everything"
44+
command: |
45+
mkdir -p /tmp/circleci/
46+
node ./scripts/circleci/pipeline_selection.js filter-jobs
47+
- when:
48+
condition:
49+
not:
50+
or:
51+
- equal: [ main, << pipeline.git.branch >> ]
52+
- matches:
53+
pattern: /0\.[0-9]+[\.[0-9]+]?-stable/
54+
value: << pipeline.git.branch >>
55+
steps:
56+
- run:
57+
name: "[PR Branch] Filter jobs"
58+
command: |
59+
if [[ -z "$CIRCLE_PULL_REQUEST" ]]; then
60+
echo "Not in a PR. Can't filter properly outside a PR. Please open a PR so that we can run the proper CI tests."
61+
echo "For safety, we run all the tests!"
62+
mkdir -p /tmp/circleci/
63+
echo '{ "run_all": true }' > /tmp/circleci/pipeline_config.json
64+
else
65+
PR_NUMBER="${CIRCLE_PULL_REQUEST##*/}"
66+
node ./scripts/circleci/pipeline_selection.js filter-jobs
67+
fi
68+
- run:
69+
name: Create config
70+
description: Generates a configuration on the fly, depending on the files that have been modified
71+
command: |
72+
node ./scripts/circleci/pipeline_selection.js create-configs
73+
- store_artifacts:
74+
path: .circleci/generated_config.yml
75+
destination: generated_config.yml
76+
- continuation/continue:
77+
configuration_path: .circleci/generated_config.yml
78+
79+
# our single workflow, that triggers the setup job defined above
80+
workflows:
81+
always-run:
82+
jobs:
83+
- choose_ci_jobs:
84+
filters:
85+
tags:
86+
only: /.*/
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# -------------------------
2+
# EXECUTORS
3+
# -------------------------
4+
executors:
5+
nodelts:
6+
<<: *defaults
7+
docker:
8+
- image: *nodelts_image
9+
resource_class: "large"
10+
nodeprevlts:
11+
<<: *defaults
12+
docker:
13+
- image: *nodeprevlts_image
14+
resource_class: "large"
15+
# Executor with Node & Java used to inspect and lint
16+
node-browsers-small:
17+
<<: *defaults
18+
docker:
19+
- image: *nodelts_browser_image
20+
resource_class: "small"
21+
node-browsers-medium:
22+
<<: *defaults
23+
docker:
24+
- image: *nodelts_browser_image
25+
resource_class: "medium"
26+
reactnativeandroid-xlarge:
27+
<<: *android-defaults
28+
resource_class: "xlarge"
29+
reactnativeandroid-large:
30+
<<: *android-defaults
31+
resource_class: "large"
32+
reactnativeios:
33+
<<: *defaults
34+
macos:
35+
xcode: *xcode_version
36+
resource_class: macos.m1.medium.gen1
37+
environment:
38+
- RCT_BUILD_HERMES_FROM_SOURCE: true
39+
reactnativeios-lts:
40+
<<: *defaults
41+
macos:
42+
xcode: '14.3.1'
43+
resource_class: macos.x86.medium.gen2
44+
environment:
45+
- RCT_BUILD_HERMES_FROM_SOURCE: true
46+
reactnative-visionos:
47+
<<: *defaults
48+
resource_class: macos.m1.medium.gen1
49+
macos:
50+
xcode: '15.2'
51+
environment:
52+
- RCT_BUILD_HERMES_FROM_SOURCE: true

0 commit comments

Comments
 (0)