ci(ios): add testflight build (#7445)

pull/7446/head
Andelf 2022-11-24 14:03:59 +08:00 committed by GitHub
parent 914b47f60b
commit 66e7a80fd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 151 additions and 0 deletions

67
.github/workflows/build-ios-release.yml vendored Normal file
View File

@ -0,0 +1,67 @@
# This workflow build iOS App as a .ipa file and upload it to TestFlight.
name: Build-iOS
on:
workflow_dispatch:
inputs:
git-ref:
description: "Release Git Ref (Which branch or tag to build?)"
required: true
default: "master"
env:
CLOJURE_VERSION: '1.10.1.763'
NODE_VERSION: '16'
JAVA_VERSION: '11'
jobs:
build-app:
runs-on: macos-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.git-ref }}
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup Java JDK
uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: ${{ env.JAVA_VERSION }}
- name: Setup clojure
uses: DeLaGuardo/setup-clojure@3.5
with:
cli: ${{ env.CLOJURE_VERSION }}
- name: Setup build tools
run: brew install fastlane
- name: Set Build Environment Variables
run: |
echo "ENABLE_FILE_SYNC_PRODUCTION=true" >> $GITHUB_ENV
- name: Compile CLJS
run: yarn install && yarn release-app
- name: Sync static build files
run: rsync -avz --exclude node_modules --exclude '*.js.map' --exclude android ./static/ ./public/static/
- name: Prepare iOS build
run: npx cap sync ios
- name: Build and upload iOS app
run: fastlane beta
working-directory: ./ios/App
env:
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 }}
APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64: true
SLACK_URL: ${{ secrets.SLACK_URL }}

8
ios/App/fastlane/Appfile Normal file
View File

@ -0,0 +1,8 @@
app_identifier("com.logseq.logseq") # The bundle identifier of your app
apple_id("dev@logseq.com") # Your Apple Developer Portal username
itc_team_id("123783177") # App Store Connect Team ID
team_id("K378MFWK59") # Developer Portal Team ID
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile

44
ios/App/fastlane/Fastfile Normal file
View File

@ -0,0 +1,44 @@
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do
# Set from env
app_store_connect_api_key
increment_build_number(
xcodeproj: "App.xcodeproj",
build_number: latest_testflight_build_number + 1,
skip_info_plist: true
)
build_app(
workspace: "App.xcworkspace",
configuration: "Release",
destination: "generic/platform=iOS",
scheme: "Logseq"
)
upload_to_testflight(
skip_submission: true,
skip_waiting_for_build_processing: true,
)
slack(message: "App successfully uploaded to TestFlight 🎉!")
end
end

View File

@ -0,0 +1,32 @@
fastlane documentation
----
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```sh
xcode-select --install
```
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
## iOS
### ios beta
```sh
[bundle exec] fastlane ios beta
```
Push a new beta build to TestFlight
----
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).