mirror of
https://github.com/tooot-app/app
synced 2025-05-10 14:58:51 +02:00
Try out build separation
This commit is contained in:
parent
36ece75480
commit
0fbae13fdb
91
.github/workflows/build.yml
vendored
91
.github/workflows/build.yml
vendored
@ -6,8 +6,43 @@ on:
|
|||||||
- release
|
- release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build-ios:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
|
steps:
|
||||||
|
- name: -- Step 0 -- Extract branch name
|
||||||
|
shell: bash
|
||||||
|
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
||||||
|
id: branch
|
||||||
|
- name: -- Step 1 -- Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: -- Step 2 -- Setup node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
- name: -- Step 3 -- Install node dependencies
|
||||||
|
run: yarn install
|
||||||
|
- name: -- Step 4 -- Install ruby dependencies
|
||||||
|
run: bundle install
|
||||||
|
- name: -- Step 5 -- Run fastlane
|
||||||
|
env:
|
||||||
|
DEVELOPER_DIR: /Applications/Xcode_13.4.1.app/Contents/Developer
|
||||||
|
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
||||||
|
LC_ALL: en_US.UTF-8
|
||||||
|
LANG: en_US.UTF-8
|
||||||
|
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
||||||
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
|
||||||
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
||||||
|
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
|
||||||
|
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
|
||||||
|
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
|
||||||
|
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
|
||||||
|
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
|
||||||
|
run: yarn app:build ios
|
||||||
|
|
||||||
|
build-android:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: -- Step 0 -- Extract branch name
|
- name: -- Step 0 -- Extract branch name
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -24,36 +59,50 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
- name: -- Step 4 -- Use Expo action
|
- name: -- Step 4 -- Install node dependencies
|
||||||
uses: expo/expo-github-action@v7
|
|
||||||
with:
|
|
||||||
expo-version: latest
|
|
||||||
token: ${{ secrets.EXPO_TOKEN }}
|
|
||||||
- name: -- Step 5 -- Install node dependencies
|
|
||||||
run: yarn install
|
run: yarn install
|
||||||
- name: -- Step 6 -- Install ruby dependencies
|
- name: -- Step 5 -- Install ruby dependencies
|
||||||
run: bundle install
|
run: bundle install
|
||||||
- name: -- Step 7 -- Run fastlane
|
- name: -- Step 6 -- Run fastlane
|
||||||
env:
|
env:
|
||||||
DEVELOPER_DIR: /Applications/Xcode_13.3.1.app/Contents/Developer
|
|
||||||
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
|
||||||
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
||||||
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
|
|
||||||
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
|
||||||
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
|
|
||||||
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
|
|
||||||
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
|
|
||||||
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
|
|
||||||
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
|
|
||||||
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
|
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
|
||||||
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||||
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
|
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
|
||||||
ANDROID_KEYSTORE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_KEY_PASSWORD }}
|
ANDROID_KEYSTORE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_KEY_PASSWORD }}
|
||||||
SUPPLY_JSON_KEY_DATA: ${{ secrets.SUPPLY_JSON_KEY_DATA }}
|
SUPPLY_JSON_KEY_DATA: ${{ secrets.SUPPLY_JSON_KEY_DATA }}
|
||||||
|
run: yarn app:build android
|
||||||
|
|
||||||
|
create-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build-ios, build-android]
|
||||||
|
steps:
|
||||||
|
- name: -- Step 0 -- Extract branch name
|
||||||
|
shell: bash
|
||||||
|
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
||||||
|
id: branch
|
||||||
|
- name: -- Step 1 -- Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: -- Step 2 -- Setup node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
- name: -- Step 3 -- Use Expo action
|
||||||
|
uses: expo/expo-github-action@v7
|
||||||
|
with:
|
||||||
|
expo-version: latest
|
||||||
|
token: ${{ secrets.EXPO_TOKEN }}
|
||||||
|
- name: -- Step 4 -- Install node dependencies
|
||||||
|
run: yarn install
|
||||||
|
- name: -- Step 5 -- Install ruby dependencies
|
||||||
|
run: bundle install
|
||||||
|
- name: -- Step 6 -- Run fastlane
|
||||||
|
env:
|
||||||
|
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
||||||
|
LC_ALL: en_US.UTF-8
|
||||||
|
LANG: en_US.UTF-8
|
||||||
GH_PAT_GET_RELEASE: ${{ secrets.GH_PAT_GET_RELEASE }}
|
GH_PAT_GET_RELEASE: ${{ secrets.GH_PAT_GET_RELEASE }}
|
||||||
FL_GITHUB_RELEASE_API_BEARER: ${{ secrets.GITHUB_TOKEN }}
|
FL_GITHUB_RELEASE_API_BEARER: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: yarn app:build
|
run: yarn app:build release
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
fastlane_version "2.203.0"
|
|
||||||
skip_docs
|
skip_docs
|
||||||
|
|
||||||
ensure_env_vars(
|
|
||||||
env_vars: ["ENVIRONMENT", "SENTRY_ORGANIZATION", "SENTRY_PROJECT", "SENTRY_AUTH_TOKEN"]
|
|
||||||
)
|
|
||||||
|
|
||||||
VERSIONS = read_json( json_path: "./package.json" )[:versions]
|
VERSIONS = read_json( json_path: "./package.json" )[:versions]
|
||||||
ENVIRONMENT = ENV["ENVIRONMENT"]
|
ENVIRONMENT = ENV["ENVIRONMENT"]
|
||||||
VERSION = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}"
|
VERSION = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}"
|
||||||
@ -218,15 +213,32 @@ private_lane :build_android do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
lane :build do
|
lane :ios do
|
||||||
|
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_token: ENV['GH_PAT_GET_RELEASE'])
|
||||||
|
if releaseExists
|
||||||
|
puts("Release #{GITHUB_RELEASE} exists. Continue with building React Native only.")
|
||||||
|
else
|
||||||
|
puts("Release #{GITHUB_RELEASE} does not exist.")
|
||||||
|
cocoapods(clean_install: true, podfile: "./ios/Podfile")
|
||||||
|
build_ios
|
||||||
|
end
|
||||||
|
rocket
|
||||||
|
end
|
||||||
|
|
||||||
|
lane :android do
|
||||||
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_token: ENV['GH_PAT_GET_RELEASE'])
|
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_token: ENV['GH_PAT_GET_RELEASE'])
|
||||||
if releaseExists
|
if releaseExists
|
||||||
puts("Release #{GITHUB_RELEASE} exists. Continue with building React Native only.")
|
puts("Release #{GITHUB_RELEASE} exists. Continue with building React Native only.")
|
||||||
else
|
else
|
||||||
puts("Release #{GITHUB_RELEASE} does not exist. Create new release as well as new native build.")
|
puts("Release #{GITHUB_RELEASE} does not exist. Create new release as well as new native build.")
|
||||||
cocoapods(clean_install: true, podfile: "./ios/Podfile")
|
|
||||||
build_ios
|
|
||||||
build_android
|
build_android
|
||||||
|
end
|
||||||
|
rocket
|
||||||
|
end
|
||||||
|
|
||||||
|
lane :release do
|
||||||
|
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_token: ENV['GH_PAT_GET_RELEASE'])
|
||||||
|
if !releaseExists
|
||||||
case ENVIRONMENT
|
case ENVIRONMENT
|
||||||
when "candidate"
|
when "candidate"
|
||||||
github_release(prerelease: true)
|
github_release(prerelease: true)
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"android": "react-native run-android",
|
"android": "react-native run-android",
|
||||||
"iphone": "react-native run-ios",
|
"iphone": "react-native run-ios",
|
||||||
"ipad": "react-native run-ios --simulator 'iPad mini (6th generation)'",
|
"ipad": "react-native run-ios --simulator 'iPad mini (6th generation)'",
|
||||||
"app:build": "bundle exec fastlane build",
|
"app:build": "bundle exec fastlane",
|
||||||
"release": "scripts/release.sh",
|
"release": "scripts/release.sh",
|
||||||
"clean": "react-native-clean-project",
|
"clean": "react-native-clean-project",
|
||||||
"postinstall": "patch-package"
|
"postinstall": "patch-package"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user