name: Nightly on: workflow_dispatch: # nightly build @ 2:15 AM UTC schedule: - cron: "15 2 * * *" jobs: set_release_type: runs-on: ubuntu-latest if: github.repository == 'facebook/react-native' outputs: RELEASE_TYPE: ${{ steps.set_release_type.outputs.RELEASE_TYPE }} env: EVENT_NAME: ${{ github.event_name }} REF: ${{ github.ref }} steps: - id: set_release_type run: | echo "Setting release type to nightly" echo "RELEASE_TYPE=nightly" >> $GITHUB_OUTPUT prebuild_apple_dependencies: if: github.repository == 'facebook/react-native' uses: ./.github/workflows/prebuild-ios-dependencies.yml secrets: inherit prebuild_react_native_core: uses: ./.github/workflows/prebuild-ios-core.yml with: use-hermes-nightly: true version-type: nightly secrets: inherit needs: [prebuild_apple_dependencies] build_android: runs-on: 8-core-ubuntu if: github.repository == 'facebook/react-native' needs: [set_release_type] container: image: reactnativecommunity/react-native-android:latest env: TERM: "dumb" # Set the encoding to resolve a known character encoding issue with decompressing tar.gz files in containers # via Gradle: https://github.com/gradle/gradle/issues/23391#issuecomment-1878979127 LC_ALL: C.UTF8 GRADLE_OPTS: "-Dorg.gradle.daemon=false" ORG_GRADLE_PROJECT_SIGNING_PWD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_PWD }} ORG_GRADLE_PROJECT_SIGNING_KEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_KEY }} ORG_GRADLE_PROJECT_SONATYPE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_SONATYPE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_PASSWORD }} REACT_NATIVE_DOWNLOADS_DIR: /opt/react-native-downloads steps: - name: Checkout uses: actions/checkout@v6 - name: Build Android uses: ./.github/actions/build-android with: release-type: ${{ needs.set_release_type.outputs.RELEASE_TYPE }} gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }} build_npm_package: runs-on: 8-core-ubuntu needs: [ set_release_type, build_android, prebuild_apple_dependencies, prebuild_react_native_core, ] container: image: reactnativecommunity/react-native-android:latest env: TERM: "dumb" GRADLE_OPTS: "-Dorg.gradle.daemon=false" # Set the encoding to resolve a known character encoding issue with decompressing tar.gz files in containers # via Gradle: https://github.com/gradle/gradle/issues/23391#issuecomment-1878979127 LC_ALL: C.UTF8 # By default we only build ARM64 to save time/resources. For release/nightlies, we override this value to build all archs. ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a" REACT_NATIVE_DOWNLOADS_DIR: /opt/react-native-downloads env: GHA_NPM_TOKEN: ${{ secrets.GHA_NPM_TOKEN }} ORG_GRADLE_PROJECT_SIGNING_PWD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_PWD }} ORG_GRADLE_PROJECT_SIGNING_KEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_KEY }} ORG_GRADLE_PROJECT_SONATYPE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_SONATYPE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_PASSWORD }} steps: - name: Checkout uses: actions/checkout@v6 - name: Build and Publish NPM Package uses: ./.github/actions/build-npm-package with: release-type: ${{ needs.set_release_type.outputs.RELEASE_TYPE }} gha-npm-token: ${{ env.GHA_NPM_TOKEN }} gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}