Skip to content

Commit

Permalink
New package system (#361)
Browse files Browse the repository at this point in the history
* rename folder/package

* split between iosandroid and ts

* gulp with new assembled folder

* force publish to use 0.64

* path fixing

* fix cmake ios

* ios path again

* react common path

* react-native-permissions

* this should fix ios package build

* back to permissions 2.1.4

* lipo output path

* checked assembled

* reusable workflows

* duplicate name

* Updated windows project settings

* check assembled file list

* test without files check

* test version patch

* TS/native separation

* fixed bad job name

* workflow_call

* fix builts

* tsc

* tsc

* shared folder fix

* small fixes

* build ts

* local workflow, file list re-enabled

* no version for local workflow

* validate assembled and iosAndroid

* expectedList

* readme and file checks

* copyCommonFiles

* Updated BabylonReactNative.vcxproj to search include headers into  @babylonjs/react-native shared forlder

* Fixed issue with windows build for package consumption vs repo build

* moved shared

* include path

* shared for windows

* shared folder android

* android cmake again

* interop ios shared path

* Update Package/gulpfile.js

Co-authored-by: Ryan Tremblay <[email protected]>

* PR feedback

* check dir displays directory name

* patch react-native package version

* release and version separated

* typo

* default RN version for tsc

* PR feedback

* podspec

* package name patching

* undo unnecessary changes

* removed workflow

* more conflicts

* submodule fix

* submodule version

* submodule path

* Removed submodule Modules/@babylonjs/react-native/submodules/BabylonNative

* submodule fix 1

* fix module 2

* Removed submodule Modules/@babylonjs/react-native-iosandroid/submodules

* fix submodule

* cmake variable names

Co-authored-by: Cedric Guillemet <[email protected]>
Co-authored-by: Sergio Ricardo Zebetto Masson <[email protected]>
Co-authored-by: Ryan Tremblay <[email protected]>
  • Loading branch information
4 people authored Mar 29, 2022
1 parent 9054098 commit c4ce035
Show file tree
Hide file tree
Showing 44 changed files with 22,897 additions and 385 deletions.
5 changes: 1 addition & 4 deletions .github/workflows/ios_android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ on:
react-native-version:
required: true
type: string
Release_Version:
required: true
type: string

jobs:
Build:
Expand All @@ -34,7 +31,7 @@ jobs:
run: npm install
working-directory: ./Package
- name: Gulp
run: npx gulp --reactNative ${{ inputs.react-native-version }} --releaseVersion ${{ inputs.Release_Version }}
run: npx gulp --reactNative ${{ inputs.react-native-version }} --releaseVersion ${{ github.event.release.name }}
working-directory: ./Package
- name: Upload Assembled iOS Android Folder
uses: actions/upload-artifact@v2
Expand Down
154 changes: 65 additions & 89 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,94 +3,32 @@ on:
release:
types: [published]


jobs:
select-react-native-version:
runs-on: macos-latest
outputs:
version: ${{ steps.stepVersion.outputs.version }}
steps:
- uses: actions-ecosystem/action-regex-match@v2
id: regex-match
with:
text: ${{ github.event.release.name }}
regex: '^(\d+\.)?(\d+)'
- name: Release infos
run: |
echo "- Tag ${GITHUB_REF/refs\/tags\//}"
echo "- Name: ${{ github.event.release.name }}"
echo "- Description: ${{ github.event.release.body }}"
- id: stepVersion
run: echo "::set-output name=version::${{ steps.regex-match.outputs.match }}"
build-android-ios:
runs-on: macos-latest
needs: select-react-native-version
steps:
- name: Checkout Repo
uses: actions/[email protected]
with:
submodules: 'recursive'
- name: Setup CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.6' # See https://gitlab.kitware.com/cmake/cmake/-/issues/22021
- name: Setup Ninja
run: brew install ninja
- name: NPM Install (Playground)
run: npm install
working-directory: ./Apps/Playground
- name: Select React Native Version ${{ needs.select-react-native-version.outputs.version }}
run: npm run select --reactNative ${{ needs.select-react-native-version.outputs.version }}
working-directory: ./Apps/Playground
- name: NPM Install (Binary Package)
run: npm install
working-directory: ./Package
- name: Gulp
run: npx gulp --reactNative ${{ needs.select-react-native-version.outputs.version }}
working-directory: ./Package
- name: Upload Assembled Folder
uses: actions/upload-artifact@v2
with:
name: 'Assembled'
path: Package/Assembled
build-android-ios-064:
uses: ./.github/workflows/ios_android.yml
with:
react-native-version: 0.64

build-windows:
runs-on: windows-2019
needs: select-react-native-version
steps:
- name: Checkout Repo
uses: actions/[email protected]
with:
submodules: 'true'
- name: Setup MSBuild
uses: microsoft/[email protected]
- name: Setup NuGet
uses: nuget/setup-nuget@v1
with:
nuget-version: '5.x'
- name: NPM Install (Playground)
run: npm install
working-directory: ./Apps/Playground
- name: NPM Install (React Native ${{ needs.select-react-native-version.outputs.version }})
run: npm run select --reactNative ${{ needs.select-react-native-version.outputs.version }}
working-directory: ./Apps/Playground
- name: NPM Install (Binary Package)
run: npm install
working-directory: ./Package
- name: Git (Windows)
run: npx gulp initializeSubmodulesWindowsAgent --reactNative ${{ needs.select-react-native-version.outputs.version }}
working-directory: ./Package
- name: Gulp (Windows)
run: npx gulp buildUWPPublish
working-directory: ./Package
- name: Upload Assembled-Windows Folder
uses: actions/upload-artifact@v2
with:
name: 'Assembled-Windows'
path: Package/Assembled-Windows
build-android-ios-065:
uses: ./.github/workflows/ios_android.yml
with:
react-native-version: 0.65

build-windows-064:
uses: ./.github/workflows/windows.yml
with:
react-native-version: 0.64

build-windows-065:
uses: ./.github/workflows/windows.yml
with:
react-native-version: 0.65

build-typescript:
uses: ./.github/workflows/typescript.yml

package:
needs: [select-react-native-version, build-android-ios, build-windows]
needs: [build-typescript, build-android-ios-064, build-android-ios-065, build-windows-064, build-windows-065]
runs-on: macos-latest
steps:
- name: Checkout Repo
Expand All @@ -103,11 +41,26 @@ jobs:
with:
name: 'Assembled'
path: Package/Assembled
- name: Download Assembled-Windows Folder
- name: Download Assembled-iOSAndroid 0.64 Folder
uses: actions/download-artifact@v2
with:
name: 'Assembled-iOSAndroid0.64'
path: Package/Assembled-iOSAndroid0.64
- name: Download Assembled-iOSAndroid 0.65 Folder
uses: actions/download-artifact@v2
with:
name: 'Assembled-iOSAndroid0.65'
path: Package/Assembled-iOSAndroid0.65
- name: Download Assembled-Windows 0.64 Folder
uses: actions/download-artifact@v2
with:
name: 'Assembled-Windows'
path: Package/Assembled-Windows
name: 'Assembled-Windows0.64'
path: Package/Assembled-Windows0.64
- name: Download Assembled-Windows 0.65 Folder
uses: actions/download-artifact@v2
with:
name: 'Assembled-Windows0.65'
path: Package/Assembled-Windows0.65
- name: Display structure of downloaded Assembled and Assembled-Windows folders
run: ls -R
- name: Setup Node.js
Expand All @@ -123,10 +76,33 @@ jobs:
working-directory: ./Package/Assembled
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Version & Publish Package @babylonjs/react-native-windows

- name: Version & Publish Package @babylonjs/react-native-iosandroid-0-64
run: |
npm version --no-git-tag-version ${GITHUB_REF/refs\/tags\//}
npm publish --access public
working-directory: ./Package/Assembled-iOSAndroid0.64
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Version & Publish Package @babylonjs/react-native-iosandroid-0-65
run: |
npm version --no-git-tag-version ${GITHUB_REF/refs\/tags\//}
npm publish --access public
working-directory: ./Package/Assembled-iOSAndroid0.65
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Version & Publish Package @babylonjs/react-native-windows-0-64
run: |
npm version --no-git-tag-version ${GITHUB_REF/refs\/tags\//}
npm publish --access public
working-directory: ./Package/Assembled-Windows
working-directory: ./Package/Assembled-Windows0.64
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Version & Publish Package @babylonjs/react-native-windows-0-65
run: |
npm version --no-git-tag-version ${GITHUB_REF/refs\/tags\//}
npm publish --access public
working-directory: ./Package/Assembled-Windows0.64
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
120 changes: 0 additions & 120 deletions .github/workflows/publish_no_release.yml

This file was deleted.

9 changes: 2 additions & 7 deletions .github/workflows/typescript.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
name: 'build Typescript'

on:
workflow_call:
inputs:
Release_Version:
required: true
type: string
on: [workflow_call]

jobs:
Build:
Expand All @@ -25,7 +20,7 @@ jobs:
run: npm install
working-directory: ./Package
- name: Gulp
run: npx gulp buildTS --releaseVersion ${{ inputs.Release_Version }}
run: npx gulp buildTS --releaseVersion ${{ github.event.release.name }}
working-directory: ./Package
- name: Upload Assembled Folder
uses: actions/upload-artifact@v2
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ on:
react-native-version:
required: true
type: string
Release_Version:
required: true
type: string

jobs:
Build:
Expand All @@ -34,7 +31,7 @@ jobs:
run: npm install
working-directory: ./Package
- name: Git (Windows)
run: npx gulp initializeSubmodulesWindowsAgent --reactNative ${{ inputs.react-native-version }} --releaseVersion ${{ inputs.Release_Version }}
run: npx gulp initializeSubmodulesWindowsAgent --reactNative ${{ inputs.react-native-version }} --releaseVersion ${{ github.event.release.name }}
working-directory: ./Package
- name: Gulp (Windows)
run: npx gulp buildUWPPublish
Expand Down
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "Core/react-native-babylon/submodules/BabylonNative"]
path = Modules/@babylonjs/react-native/submodules/BabylonNative
[submodule "Modules/@babylonjs/react-native-iosandroid/submodules/BabylonNative"]
path = Modules/@babylonjs/react-native-iosandroid/submodules/BabylonNative
url = https://github.com/BabylonJS/BabylonNative.git

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Apps/Playground/0.64/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"@babylonjs/core": "5.0.0-rc.4",
"@babylonjs/loaders": "5.0.0-rc.4",
"@babylonjs/react-native": "file:../../../Modules/@babylonjs/react-native",
"@babylonjs/react-native-iosandroid": "file:../../../Modules/@babylonjs/react-native-iosandroid",
"@babylonjs/react-native-windows": "file:../../../Modules/@babylonjs/react-native-windows",
"@babylonjs/playground-shared": "file:../playground-shared",
"@react-native-community/slider": "4.0.0-rc.3",
Expand Down
2 changes: 1 addition & 1 deletion Apps/Playground/0.64/scripts/tools.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const chalk = require('chalk');

function iosCmake() {
console.log(chalk.black.bgCyan('Running CMake for iOS...'));
shelljs.exec('cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../submodules/BabylonNative/Dependencies/ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED -DENABLE_ARC=0 -DENABLE_BITCODE=1 -DDEPLOYMENT_TARGET=12 -DENABLE_PCH=OFF .', {cwd: 'node_modules/@babylonjs/react-native/ios'});
shelljs.exec('cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../submodules/BabylonNative/Dependencies/ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED -DENABLE_ARC=0 -DENABLE_BITCODE=1 -DDEPLOYMENT_TARGET=12 -DENABLE_PCH=OFF .', {cwd: 'node_modules/@babylonjs/react-native-iosandroid/ios'});
}

function postInstall() {
Expand Down
Loading

0 comments on commit c4ce035

Please sign in to comment.