Build system with RNTA for RN 0.73+ #1791
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Build | |
on: | |
pull_request: | |
branches: | |
- master | |
jobs: | |
# build-ios-android-rnta: | |
# runs-on: macos-latest | |
# strategy: | |
# matrix: | |
# platform: [ios, android] | |
# react-native-version: ['0.73', '0.74'] | |
# steps: | |
# - name: Checkout Repo | |
# uses: actions/[email protected] | |
# - name: Setup CMake | |
# uses: jwlawson/[email protected] | |
# with: | |
# cmake-version: '3.26.3' | |
# - name: Setup Ninja | |
# run: brew install ninja | |
# - name: Setup Watchman | |
# run: brew install watchman | |
# - name: Free space | |
# uses: ./.github/workflows/macos_freespace | |
# - name: Set React-Native version ${{ matrix.react-native-version }} | |
# run: npm run set-react-version -- ${{ matrix.react-native-version }} | |
# working-directory: ./Apps/BRNPlayground | |
# - name: NPM Install (BRNPlayground) | |
# run: npm install | |
# working-directory: ./Apps/BRNPlayground | |
# | |
# - name: Build Bundle | |
# run: npm run build:${{ matrix.platform }} | |
# working-directory: ./Apps/BRNPlayground | |
# | |
# - name: NPM Install (Binary Package) | |
# run: npm install | |
# working-directory: ./Package | |
# - name: Setup Java | |
# uses: actions/setup-java@v3 | |
# with: | |
# distribution: 'temurin' | |
# java-version: '17' | |
# check-latest: true | |
# - name: Gulp ${{ matrix.platform }} | |
# run: npx gulp build${{ matrix.platform }}RNTA | |
# working-directory: ./Package | |
# env: | |
# JAVA_HOME: ${{ env.JAVA_HOME_11_X64 }} | |
build-upload-ios-android-rnta: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
react-native-version: ['0.73', '0.74'] | |
steps: | |
- name: Checkout Repo | |
uses: actions/[email protected] | |
- name: Setup CMake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.26.3' | |
- name: Setup Ninja | |
run: brew install ninja | |
- name: Setup Watchman | |
run: brew install watchman | |
- name: Free space | |
uses: ./.github/workflows/macos_freespace | |
- name: Set React-Native version ${{ matrix.react-native-version }} | |
run: npm run set-react-version -- ${{ matrix.react-native-version }} | |
working-directory: ./Apps/BRNPlayground | |
- name: NPM Install (BRNPlayground) | |
run: npm install | |
working-directory: ./Apps/BRNPlayground | |
- name: Build Bundle iOS | |
run: npm run build:ios | |
working-directory: ./Apps/BRNPlayground | |
- name: Build Bundle Android | |
run: npm run build:android | |
working-directory: ./Apps/BRNPlayground | |
- name: NPM Install (Binary Package) | |
run: npm install | |
working-directory: ./Package | |
- name: Setup Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
check-latest: true | |
- name: Gulp build iOS and Android | |
run: npx gulp buildRNTA | |
working-directory: ./Package | |
env: | |
JAVA_HOME: ${{ env.JAVA_HOME_11_X64 }} | |
- name: Upload Assembled iOS Android Folder | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Assembled-iOSAndroid${{ matrix.react-native-version }}' | |
path: Package/Assembled-iOSAndroid | |
- name: Upload Assembled iOS Android BaseKit Folder | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Assembled-BaseKit-iOSAndroid${{ matrix.react-native-version }}' | |
path: Package/Assembled-BaseKit-iOSAndroid | |
build-typescript: | |
uses: ./.github/workflows/typescript.yml | |
with: | |
release-version: 0.0.${GITHUB_SHA::8} | |
build-windows-rnta: | |
runs-on: windows-2019 | |
strategy: | |
matrix: | |
platform: [x86, x64, ARM64] | |
config: [Debug, Release] | |
react-native-version: ['0.73', '0.74'] | |
steps: | |
- name: Support longpaths | |
run: git config --system core.longpaths true | |
- name: Checkout Repo | |
uses: actions/[email protected] | |
with: | |
submodules: 'true' | |
- name: Setup MSBuild | |
uses: microsoft/setup-msbuild@v2 | |
# - name: Setup Node 20 | |
# uses: actions/setup-node@v3 | |
# with: | |
# node-version: 20 | |
- name: Install watchman | |
run: choco install watchman | |
working-directory: ./Apps/BRNPlayground | |
- name: Set React-Native version ${{ matrix.react-native-version }} | |
run: npm run set-react-version -- ${{ matrix.react-native-version }} | |
working-directory: ./Apps/BRNPlayground | |
- name: NPM Install RNTA | |
run: npm install | |
working-directory: ./Apps/BRNPlayground | |
- name: Build Windows Bundle | |
run: npm run build:windows | |
working-directory: ./Apps/BRNPlayground | |
- name: NPM Install Package | |
run: npm install | |
working-directory: ./Package | |
- name: NPM Generate Windows Project | |
run: npx install-windows-test-app | |
working-directory: ./Apps/BRNPlayground | |
- name: CMake BabylonNative | |
run: cmake -G "Visual Studio 16 2019" -B ./Build/uwp_${{ matrix.platform }} -D CMAKE_SYSTEM_NAME=WindowsStore -D CMAKE_SYSTEM_VERSION=10.0.19041.0 -DCMAKE_UNITY_BUILD=true -D CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM=10.0.19041.0 -A ${{ matrix.platform == 'x86' && 'win32' || matrix.platform}} ./../react-native-windows/windows | |
working-directory: ./Modules/@babylonjs/react-native | |
- name: Nuget restore | |
run: nuget restore BRNPlayground.sln | |
working-directory: ./Apps/BRNPlayground/windows | |
- name: Windows build BN ${{ matrix.platform }} ${{ matrix.config }} | |
run: MSBuild /p:Platform="${{ matrix.platform }}" /p:Configuration="${{ matrix.config }}" /m ReactNativeBabylon.sln | |
working-directory: ./Modules/@babylonjs/react-native/Build/uwp_${{ matrix.platform }} | |
- name: Windows build BRN ${{ matrix.config }} | |
run: MSBuild /p:Platform="${{ matrix.platform }}" /p:Configuration="${{ matrix.config }}" /m BRNPlayground.sln | |
working-directory: ./Apps/BRNPlayground/windows | |
publish-react-native: | |
needs: [build-typescript, build-upload-ios-android-rnta] | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
react-native-version: ['0.73', '0.74'] | |
steps: | |
- name: Checkout Repo | |
uses: actions/[email protected] | |
- name: NPM Install (Binary Package) | |
run: npm install | |
working-directory: ./Package | |
- name: Download Assembled Folder | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'Assembled' | |
path: Package/Assembled | |
- name: Display structure of downloaded Assembled and Assembled-Windows folders | |
run: ls -R | |
- name: Version & Publish Package @babylonjs/react-native | |
run: | | |
npm version --no-git-tag-version 10.0.0 | |
npm publish --access public --dry-run | |
working-directory: ./Package/Assembled | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
publish-react-native-iosandroid: | |
needs: [build-typescript, build-upload-ios-android-rnta] | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
react-native-version: ['0.73', '0.74'] | |
basekit: ['', '-BaseKit'] | |
steps: | |
- name: Checkout Repo | |
uses: actions/[email protected] | |
- name: NPM Install (Binary Package) | |
run: npm install | |
working-directory: ./Package | |
- name: Download Assembled${{ matrix.basekit }}-iOSAndroid ${{ matrix.react-native-version }} Folder | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'Assembled${{ matrix.basekit }}-iOSAndroid${{ matrix.react-native-version }}' | |
path: Package/Assembled | |
- name: Display structure of downloaded Assembled and Assembled-Windows folders | |
run: ls -R | |
- name: Version & Publish Package @babylonjs/react-native${{ matrix.basekit }}-iosandroid | |
run: | | |
npm version --no-git-tag-version 10.0.0 | |
npm publish --access public --dry-run | |
working-directory: ./Package/Assembled | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |