Skip to content

Commit

Permalink
[RN][GHA] Move HelloWorld jobs from CCI to GHA
Browse files Browse the repository at this point in the history
  • Loading branch information
cipolleschi committed Jun 11, 2024
1 parent 3c3c687 commit 9de2b12
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 49 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
name: test_ios_template
description: Test iOS Template
name: test_ios_helloworld
description: Test iOS Hello World
inputs:
jsengine:
description: Which JavaScript engine to use. Must be one of "Hermes", "JSC".
type: choice
default: Hermes
options:
- JSC
- Hermes
use-frameworks:
description: The dependency building and linking strategy to use. Must be one of "StaticLibraries", "DynamicFrameworks"
type: choice
default: StaticLibraries
options:
- StaticLibraries
- DynamicFrameworks
architecture:
description: The React Native architecture to Test. RNTester has always Fabric enabled, but we want to run integration test with the old arch setup
type: choice
default: OldArch
options:
- OldArch
- NewArch
ruby-version:
description: The version of ruby that must be used
default: 2.6.10
flavor:
description: The flavor of the build. Must be one of "Debug", "Release".
type: choice
default: Debug
options:
- Debug
- Release
hermes-version:
description: The version of hermes
required: true
Expand All @@ -38,11 +54,6 @@ runs:
with:
hermes-version: ${{ inputs.hermes-version }}
react-native-version: ${{ inputs.react-native-version }}
- name: Download npm package artifact
uses: actions/[email protected]
with:
name: react-native-package
path: build
- name: Setup Hermes workspace
uses: ./.github/actions/setup_hermes_workspace
- name: Setup ruby
Expand All @@ -56,43 +67,30 @@ runs:
BUILD_TYPE="${{ inputs.flavor }}"
TARBALL_FILENAME=$(node ./packages/react-native/scripts/hermes/get-tarball-name.js --buildType "$BUILD_TYPE")
echo "export HERMES_ENGINE_TARBALL_PATH=$HERMES_WS_DIR/hermes-runtime-darwin/$TARBALL_FILENAME" >> $GITHUB_ENV
- name: Create iOS template project
shell: bash
run: |
PACKAGE=$(cat build/react-native-package-version)
PATH_TO_PACKAGE="$GITHUB_WORKSPACE/build/$PACKAGE"
node ./scripts/releases/update-template-package.js "{\"react-native\":\"file:$PATH_TO_PACKAGE\"}"
node ./scripts/e2e/init-template-e2e.js --projectName $PROJECT_NAME --templatePath "$GITHUB_WORKSPACE/packages/react-native" --directory "/tmp/$PROJECT_NAME" --verbose
- name: Yarn install in template project
shell: bash
run: |
cd /tmp/$PROJECT_NAME/android/
yarn install --non-interactive
- name: Install iOS dependencies - Configuration ${{ inputs.flavor }}; New Architecture ${{ inputs.architecture }}; JS Engine ${{ inputs.jsengine }}
shell: bash
run: |
cd /tmp/$PROJECT_NAME/ios
cd packages/helloworld
args=()
if [[ ${{ inputs.architecture }} == "NewArch" ]]; then
export RCT_NEW_ARCH_ENABLED=1
if [[ ${{ inputs.architecture }} == "OldArch" ]]; then
args+=(--arch old)
fi
if [[ ${{ inputs.jsengine }} == "JSC" ]]; then
export USE_HERMES=0
args+=(--jsvm jsc)
fi
if [[ ${{ inputs.use-frameworks }} == "DynamicFrameworks" ]]; then
export USE_FRAMEWORKS=dynamic
args+=(--frameworks dynamic)
fi
cd ..
bundle install
bundle exec pod install --project-directory=ios
- name: Build template project
yarn bootstrap ios "${args[@]}" | cat
- name: Build HelloWorld project
shell: bash
run: |
xcodebuild build \
-configuration ${{ inputs.flavor }} \
-workspace /tmp/$PROJECT_NAME/ios/$PROJECT_NAME.xcworkspace \
-scheme $PROJECT_NAME \
-sdk iphonesimulator
cd packages/helloworld
args=()
if [[ ${{ inputs.flavor }} == "Release" ]]; then
args+=(--prod)
fi
yarn build ios "${args[@]}" | cat
yarn bundle ios "${args[@]}" | cat
28 changes: 14 additions & 14 deletions .github/workflows/test-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
echo ${{ steps.hermes-version.outputs.version }}
build_hermesc_apple:
runs-on: macos-13
runs-on: macos-14-large
needs: prepare_hermes_workspace
env:
HERMES_WS_DIR: /tmp/hermes
Expand Down Expand Up @@ -112,7 +112,7 @@ jobs:
. ./utils/build-apple-framework.sh
build_host_hermesc_if_needed
build_apple_slices_hermes:
runs-on: macos-14
runs-on: macos-14-large
needs: [build_hermesc_apple, prepare_hermes_workspace]
env:
HERMES_WS_DIR: /tmp/hermes
Expand Down Expand Up @@ -200,7 +200,7 @@ jobs:
path: ./packages/react-native/sdks/hermes/build_${{ matrix.slice }}_${{ matrix.flavor }}
key: v4-hermes-apple-${{ needs.prepare_hermes_workspace.outputs.hermes-version }}-${{ needs.prepare_hermes_workspace.outputs.react-native-version }}-${{ hashfiles('packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh') }}-${{ matrix.slice }}-${{ matrix.flavor }}
build_hermes_macos:
runs-on: macos-13
runs-on: macos-14-large
needs: [build_apple_slices_hermes, prepare_hermes_workspace]
env:
HERMES_WS_DIR: /tmp/hermes
Expand Down Expand Up @@ -373,7 +373,7 @@ jobs:
name: hermes-dSYM-${{ matrix.flavor }}
path: /tmp/hermes/dSYM/${{ matrix.flavor }}
test_ios_rntester_ruby_3_2_0:
runs-on: macos-13
runs-on: macos-14
needs:
[build_apple_slices_hermes, prepare_hermes_workspace, build_hermes_macos]
env:
Expand All @@ -389,7 +389,7 @@ jobs:
hermes-version: ${{ needs.prepare_hermes_workspace.outputs.hermes-version }}
react-native-version: ${{ needs.prepare_hermes_workspace.outputs.react-native-version }}
test_ios_rntester_dynamic_frameworks:
runs-on: macos-13
runs-on: macos-14
needs:
[build_apple_slices_hermes, prepare_hermes_workspace, build_hermes_macos]
env:
Expand All @@ -411,7 +411,7 @@ jobs:
hermes-version: ${{ needs.prepare_hermes_workspace.outputs.hermes-version }}
react-native-version: ${{ needs.prepare_hermes_workspace.outputs.react-native-version }}
test_ios_rntester:
runs-on: macos-13
runs-on: macos-14
needs:
[build_apple_slices_hermes, prepare_hermes_workspace, build_hermes_macos]
env:
Expand Down Expand Up @@ -908,26 +908,26 @@ jobs:
name: template-apk-${{ matrix.flavor }}-${{ matrix.architecture }}-${{ matrix.jsengine }}
path: /tmp/AndroidTemplateProject/android/app/build/outputs/apk/
compression-level: 0
test_ios_template_with_ruby_3_2_0:
runs-on: macos-13
needs: [prepare_hermes_workspace, build_npm_package]
test_ios_helloworld_with_ruby_3_2_0:
runs-on: macos-14
needs: [build_hermes_macos]
env:
PROJECT_NAME: iOSTemplateProject
HERMES_WS_DIR: /tmp/hermes
YARN_ENABLE_IMMUTABLE_INSTALLS: false
steps:
- name: Checkout
uses: actions/[email protected]
- uses: ./.github/actions/test_ios_template
- uses: ./.github/actions/test_ios_helloworld
with:
ruby-version: 3.2.0
architecture: NewArch
flavor: Debug
hermes-version: ${{ needs.prepare_hermes_workspace.outputs.hermes-version }}
react-native-version: ${{ needs.prepare_hermes_workspace.outputs.react-native-version }}
test_ios_template:
runs-on: macos-13
needs: [prepare_hermes_workspace, build_npm_package]
test_ios_helloworld:
runs-on: macos-14
needs: [build_hermes_macos]
strategy:
matrix:
flavor: [Debug, Release]
Expand All @@ -945,7 +945,7 @@ jobs:
steps:
- name: Checkout
uses: actions/[email protected]
- uses: ./.github/actions/test_ios_template
- uses: ./.github/actions/test_ios_helloworld
with:
flavor: ${{ matrix.flavor }}
jsengine: ${{ matrix.jsengine }}
Expand Down

0 comments on commit 9de2b12

Please sign in to comment.