Skip to content

Commit d0012b7

Browse files
cortinicofacebook-github-bot
authored andcommitted
Simplify build_android (facebook#44870)
Summary: Pull Request resolved: facebook#44870 This just simplifies the build_android step on GHA Changelog: [Internal] [Changed] - Simplify build_android Reviewed By: cipolleschi Differential Revision: D58407537 fbshipit-source-id: 2bb34ef8b8d1883e653914488d4d417356f0f1d2
1 parent 3c3c687 commit d0012b7

5 files changed

Lines changed: 59 additions & 121 deletions

File tree

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
name: Setup gradle
2-
description: 'Set up your GitHub Actions workflow with a specific version of gradle'
3-
inputs:
4-
gradle-version:
5-
description: 'The node.js version to use'
6-
required: false
7-
default: '8.6'
2+
description: "Set up your GitHub Actions workflow with a specific version of gradle"
83
runs:
94
using: "composite"
105
steps:
116
- name: Setup gradle
127
uses: gradle/actions/setup-gradle@v3
138
with:
14-
gradle-version: ${{ inputs.gradle-version }}
9+
gradle-version: wrapper

.github/workflows/nightly.yml

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -490,15 +490,13 @@ jobs:
490490
name: hermes-win64-bin
491491
path: D:\tmp\hermes\win64-bin\
492492
build_android:
493-
runs-on: 16-core-ubuntu
494-
needs: [set_release_type, prepare_hermes_workspace]
493+
runs-on: 8-core-ubuntu
494+
needs: [set_release_type]
495495
container:
496496
image: reactnativecommunity/react-native-android:latest
497497
env:
498498
TERM: "dumb"
499-
GRADLE_OPTS: '-Dorg.gradle.daemon=false'
500-
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
501-
ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a"
499+
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
502500
steps:
503501
- name: Checkout
504502
uses: actions/checkout@v4.1.1
@@ -512,32 +510,31 @@ jobs:
512510
uses: ./.github/actions/setup-gradle
513511
- name: Build and publish all the Android Artifacts to /tmp/maven-local
514512
run: |
513+
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
515514
if [[ "${{ needs.set_release_type.outputs.RELEASE_TYPE }}" == "dry-run" ]]; then
516515
export ORG_GRADLE_PROJECT_reactNativeArchitectures="arm64-v8a"
517516
else
518517
export ORG_GRADLE_PROJECT_reactNativeArchitectures="armeabi-v7a,arm64-v8a,x86,x86_64"
519518
fi
520-
./gradlew publishAllToMavenTempLocal
519+
./gradlew publishAllToMavenTempLocal build -PenableWarningsAsErrors=true
521520
shell: bash
522-
- name: Cache android build artifacts
523-
uses: actions/cache/save@v4.0.0
521+
- name: Upload test results
522+
if: ${{ always() }}
523+
uses: actions/upload-artifact@v4.3.0
524524
with:
525-
key: android-build-cache-${{ github.run_number}}
525+
name: build-android-results
526+
compression-level: 1
526527
path: |
527-
build
528-
packages/rn-tester/android/app/.cxx
529-
packages/rn-tester/android/app/build
530-
packages/react-native/sdks/download
531-
packages/react-native/sdks/hermes
532-
packages/react-native/ReactAndroid/.cxx
533-
packages/react-native/ReactAndroid/build
534-
packages/react-native/ReactAndroid/hermes-engine/.cxx
535-
packages/react-native/ReactAndroid/hermes-engine/build
536-
packages/react-native/ReactAndroid/src/main/jni/prebuilt
537-
packages/react-native-gradle-plugin/.gradle
538-
packages/react-native-gradle-plugin/build
539-
packages/react-native-codegen/lib
540-
enableCrossOsArchive: true
528+
packages/react-native-gradle-plugin/react-native-gradle-plugin/build/reports
529+
packages/react-native-gradle-plugin/settings-plugin/build/reports
530+
packages/react-native/ReactAndroid/build/reports
531+
- name: Upload RNTester APK
532+
if: ${{ always() }}
533+
uses: actions/upload-artifact@v4.3.0
534+
with:
535+
name: rntester-apk
536+
path: packages/rn-tester/android/app/build/outputs/apk/
537+
compression-level: 0
541538
build_npm_package:
542539
runs-on: 8-core-ubuntu
543540
needs: [set_release_type, prepare_hermes_workspace, build_hermes_macos, build_hermesc_linux, build_hermesc_windows,build_android]

.github/workflows/publish-release.yml

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -488,15 +488,13 @@ jobs:
488488
name: hermes-win64-bin
489489
path: D:\tmp\hermes\win64-bin\
490490
build_android:
491-
runs-on: 16-core-ubuntu
492-
needs: [set_release_type, prepare_hermes_workspace]
491+
runs-on: 8-core-ubuntu
492+
needs: [set_release_type]
493493
container:
494494
image: reactnativecommunity/react-native-android:latest
495495
env:
496496
TERM: "dumb"
497-
GRADLE_OPTS: '-Dorg.gradle.daemon=false'
498-
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
499-
ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a"
497+
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
500498
steps:
501499
- name: Checkout
502500
uses: actions/checkout@v4.1.1
@@ -510,32 +508,31 @@ jobs:
510508
uses: ./.github/actions/setup-gradle
511509
- name: Build and publish all the Android Artifacts to /tmp/maven-local
512510
run: |
511+
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
513512
if [[ "${{ needs.set_release_type.outputs.RELEASE_TYPE }}" == "dry-run" ]]; then
514513
export ORG_GRADLE_PROJECT_reactNativeArchitectures="arm64-v8a"
515514
else
516515
export ORG_GRADLE_PROJECT_reactNativeArchitectures="armeabi-v7a,arm64-v8a,x86,x86_64"
517516
fi
518-
./gradlew publishAllToMavenTempLocal
517+
./gradlew publishAllToMavenTempLocal build -PenableWarningsAsErrors=true
519518
shell: bash
520-
- name: Cache android build artifacts
521-
uses: actions/cache/save@v4.0.0
519+
- name: Upload test results
520+
if: ${{ always() }}
521+
uses: actions/upload-artifact@v4.3.0
522522
with:
523-
key: android-build-cache-${{ github.run_number}}
523+
name: build-android-results
524+
compression-level: 1
524525
path: |
525-
build
526-
packages/rn-tester/android/app/.cxx
527-
packages/rn-tester/android/app/build
528-
packages/react-native/sdks/download
529-
packages/react-native/sdks/hermes
530-
packages/react-native/ReactAndroid/.cxx
531-
packages/react-native/ReactAndroid/build
532-
packages/react-native/ReactAndroid/hermes-engine/.cxx
533-
packages/react-native/ReactAndroid/hermes-engine/build
534-
packages/react-native/ReactAndroid/src/main/jni/prebuilt
535-
packages/react-native-gradle-plugin/.gradle
536-
packages/react-native-gradle-plugin/build
537-
packages/react-native-codegen/lib
538-
enableCrossOsArchive: true
526+
packages/react-native-gradle-plugin/react-native-gradle-plugin/build/reports
527+
packages/react-native-gradle-plugin/settings-plugin/build/reports
528+
packages/react-native/ReactAndroid/build/reports
529+
- name: Upload RNTester APK
530+
if: ${{ always() }}
531+
uses: actions/upload-artifact@v4.3.0
532+
with:
533+
name: rntester-apk
534+
path: packages/rn-tester/android/app/build/outputs/apk/
535+
compression-level: 0
539536
build_npm_package:
540537
runs-on: 8-core-ubuntu
541538
needs: [set_release_type, prepare_hermes_workspace, build_hermes_macos, build_hermesc_linux, build_hermesc_windows,build_android]

.github/workflows/test-all.yml

Lines changed: 11 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -561,14 +561,12 @@ jobs:
561561
path: D:\tmp\hermes\win64-bin\
562562
build_android:
563563
runs-on: 8-core-ubuntu
564-
needs: [set_release_type, prepare_hermes_workspace]
564+
needs: [set_release_type]
565565
container:
566566
image: reactnativecommunity/react-native-android:latest
567567
env:
568568
TERM: "dumb"
569569
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
570-
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
571-
ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a"
572570
steps:
573571
- name: Checkout
574572
uses: actions/checkout@v4.1.1
@@ -582,86 +580,31 @@ jobs:
582580
uses: ./.github/actions/setup-gradle
583581
- name: Build and publish all the Android Artifacts to /tmp/maven-local
584582
run: |
583+
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
585584
if [[ "${{ needs.set_release_type.outputs.RELEASE_TYPE }}" == "dry-run" ]]; then
586585
export ORG_GRADLE_PROJECT_reactNativeArchitectures="arm64-v8a"
587586
else
588587
export ORG_GRADLE_PROJECT_reactNativeArchitectures="armeabi-v7a,arm64-v8a,x86,x86_64"
589588
fi
590-
./gradlew publishAllToMavenTempLocal
589+
./gradlew publishAllToMavenTempLocal build -PenableWarningsAsErrors=true
591590
shell: bash
592-
- name: Cache android build artifacts
593-
uses: actions/cache/save@v4.0.0
594-
with:
595-
key: android-build-cache-${{ github.run_number}}
596-
path: |
597-
build
598-
packages/rn-tester/android/app/.cxx
599-
packages/rn-tester/android/app/build
600-
packages/react-native/sdks/download
601-
packages/react-native/sdks/hermes
602-
packages/react-native/ReactAndroid/.cxx
603-
packages/react-native/ReactAndroid/build
604-
packages/react-native/ReactAndroid/hermes-engine/.cxx
605-
packages/react-native/ReactAndroid/hermes-engine/build
606-
packages/react-native/ReactAndroid/src/main/jni/prebuilt
607-
packages/react-native-gradle-plugin/.gradle
608-
packages/react-native-gradle-plugin/build
609-
packages/react-native-codegen/lib
610-
enableCrossOsArchive: true
611-
test_android:
612-
runs-on: 8-core-ubuntu
613-
needs: [prepare_hermes_workspace, build_android]
614-
container:
615-
image: reactnativecommunity/react-native-android:latest
616-
env:
617-
TERM: "dumb"
618-
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
619-
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
620-
ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a"
621-
# Repeated here, as the environment key in this executor will overwrite the one in defaults
622-
PUBLIC_ANALYSISBOT_GITHUB_TOKEN_A: ${{ secrets.GITHUB_ANALYSISBOT_TOKEN_A }}
623-
PUBLIC_ANALYSISBOT_GITHUB_TOKEN_B: ${{ secrets.GITHUB_ANALYSISBOT_TOKEN_B }}
624-
steps:
625-
- name: Checkout
626-
uses: actions/checkout@v4.1.1
627-
- name: Setup node.js
628-
uses: ./.github/actions/setup-node
629-
- name: Install dependencies
630-
run: yarn install --non-interactive
631-
- name: Set React Native Version
632-
run: node ./scripts/releases/set-rn-version.js --build-type dry-run
633-
- name: Cache android build artifacts
634-
uses: actions/cache@v4.0.0
635-
with:
636-
key: android-build-cache-${{ github.run_number}}
637-
path: |
638-
build
639-
packages/rn-tester/android/app/.cxx
640-
packages/rn-tester/android/app/build
641-
packages/react-native/sdks/download
642-
packages/react-native/sdks/hermes
643-
packages/react-native/ReactAndroid/.cxx
644-
packages/react-native/ReactAndroid/build
645-
packages/react-native/ReactAndroid/hermes-engine/.cxx
646-
packages/react-native/ReactAndroid/hermes-engine/build
647-
packages/react-native/ReactAndroid/src/main/jni/prebuilt
648-
packages/react-native-gradle-plugin/.gradle
649-
packages/react-native-gradle-plugin/build
650-
packages/react-native-codegen/lib
651-
- name: Build & Test React Native using Gradle
652-
run: ./gradlew build -PenableWarningsAsErrors=true
653591
- name: Upload test results
654592
if: ${{ always() }}
655593
uses: actions/upload-artifact@v4.3.0
656594
with:
657-
name: android-test-results
658-
path: packages/react-native-gradle-plugin/build/test-results
659-
- name: Upload android package
595+
name: build-android-results
596+
compression-level: 1
597+
path: |
598+
packages/react-native-gradle-plugin/react-native-gradle-plugin/build/reports
599+
packages/react-native-gradle-plugin/settings-plugin/build/reports
600+
packages/react-native/ReactAndroid/build/reports
601+
- name: Upload RNTester APK
660602
if: ${{ always() }}
661603
uses: actions/upload-artifact@v4.3.0
662604
with:
663605
name: rntester-apk
664606
path: packages/rn-tester/android/app/build/outputs/apk/
607+
compression-level: 0
665608
build_npm_package:
666609
runs-on: 8-core-ubuntu
667610
needs:

packages/rn-tester/android/app/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,4 +198,10 @@ afterEvaluate {
198198
tasks
199199
.getByName("generateCodegenSchemaFromJavaScript")
200200
.dependsOn(":packages:react-native:ReactAndroid:buildCodegenCLI")
201+
tasks
202+
.getByName("createBundleJscReleaseJsAndAssets")
203+
.dependsOn(":packages:react-native:ReactAndroid:buildCodegenCLI")
204+
tasks
205+
.getByName("createBundleHermesReleaseJsAndAssets")
206+
.dependsOn(":packages:react-native:ReactAndroid:buildCodegenCLI")
201207
}

0 commit comments

Comments
 (0)