Skip to content

Commit

Permalink
feat: implement visionOS CI (#54)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
okwasniewski committed Aug 5, 2024
1 parent 8e5e786 commit 218aa87
Show file tree
Hide file tree
Showing 10 changed files with 1,609 additions and 4 deletions.
75 changes: 74 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,77 @@ jobs:
docker:
- image: debian:bullseye
steps:
- run: echo "There is nothing here, just an empty job. Everything has been moved to GitHub Action"
- run:
name: Install Yarn
command: |
apt update
apt install -y wget git curl jq
apt-get update
apt-get install -y ca-certificates curl gnupg
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=18
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
apt-get update
apt install -y nodejs
npm install --global yarn
- checkout
- run:
name: Yarn Install
command: yarn install
- when:
condition:
or:
- equal: [ main, << pipeline.git.branch >> ]
- matches:
pattern: /0\.[0-9]+[\.[0-9]+]?-stable/
value: << pipeline.git.branch >>
steps:
- run:
name: "[Main or Stable] Create input for config to test everything"
command: |
mkdir -p /tmp/circleci/
node ./scripts/circleci/pipeline_selection.js filter-jobs
- when:
condition:
not:
or:
- equal: [ main, << pipeline.git.branch >> ]
- matches:
pattern: /0\.[0-9]+[\.[0-9]+]?-stable/
value: << pipeline.git.branch >>
steps:
- run:
name: "[PR Branch] Filter jobs"
command: |
if [[ -z "$CIRCLE_PULL_REQUEST" ]]; then
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."
echo "For safety, we run all the tests!"
mkdir -p /tmp/circleci/
echo '{ "run_all": true }' > /tmp/circleci/pipeline_config.json
else
PR_NUMBER="${CIRCLE_PULL_REQUEST##*/}"
node ./scripts/circleci/pipeline_selection.js filter-jobs
fi
- run:
name: Create config
description: Generates a configuration on the fly, depending on the files that have been modified
command: |
node ./scripts/circleci/pipeline_selection.js create-configs
- store_artifacts:
path: .circleci/generated_config.yml
destination: generated_config.yml
- continuation/continue:
configuration_path: .circleci/generated_config.yml

# our single workflow, that triggers the setup job defined above
workflows:
always-run:
jobs:
- choose_ci_jobs:
filters:
tags:
only: /.*/
52 changes: 52 additions & 0 deletions .circleci/configurations/executors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# -------------------------
# EXECUTORS
# -------------------------
executors:
nodelts:
<<: *defaults
docker:
- image: *nodelts_image
resource_class: "large"
nodeprevlts:
<<: *defaults
docker:
- image: *nodeprevlts_image
resource_class: "large"
# Executor with Node & Java used to inspect and lint
node-browsers-small:
<<: *defaults
docker:
- image: *nodelts_browser_image
resource_class: "small"
node-browsers-medium:
<<: *defaults
docker:
- image: *nodelts_browser_image
resource_class: "medium"
reactnativeandroid-xlarge:
<<: *android-defaults
resource_class: "xlarge"
reactnativeandroid-large:
<<: *android-defaults
resource_class: "large"
reactnativeios:
<<: *defaults
macos:
xcode: *xcode_version
resource_class: macos.m1.medium.gen1
environment:
- RCT_BUILD_HERMES_FROM_SOURCE: true
reactnativeios-lts:
<<: *defaults
macos:
xcode: '14.3.1'
resource_class: macos.x86.medium.gen2
environment:
- RCT_BUILD_HERMES_FROM_SOURCE: true
reactnative-visionos:
<<: *defaults
resource_class: macos.m1.medium.gen1
macos:
xcode: '15.2'
environment:
- RCT_BUILD_HERMES_FROM_SOURCE: true
Loading

0 comments on commit 218aa87

Please sign in to comment.