Assemble Ios Release #262
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: Assemble Ios Release | |
# 触发工作流程的事件 | |
on: | |
push: | |
tags: [ v*, r*, i* ] | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
# 工作流环境变量 | |
env: | |
# 应用的application_id | |
APP_ID: ${{secrets.APP_ID}} | |
APP_NAME: Taro | |
VERSION_NUMBER: 1.11.0 | |
BUILD_NUMBER: 1.11.0.1 | |
BUILD_TYPE: release | |
TEAM_ID: ${{secrets.TEAM_ID}} | |
PROVISIONING_PROFILE_SPECIFIER: ${{secrets.RELEASE_PROVISIONING_PROFILE_SPECIFIER}} | |
CODE_SIGN_IDENTITY: Apple Distribution | |
SIGNING_CERTIFICATE_P12_DATA: ${{secrets.RELEASE_SIGNING_CERTIFICATE_P12_DATA}} | |
SIGNING_CERTIFICATE_PASSWORD: ${{secrets.RELEASE_SIGNING_CERTIFICATE_PASSWORD}} | |
PROVISIONING_PROFILE_DATA: ${{secrets.RELEASE_PROVISIONING_PROFILE_DATA}} | |
APP_STORE_CONNECT_USERNAME: ${{secrets.APP_STORE_CONNECT_USERNAME}} | |
APP_STORE_CONNECT_PASSWORD: ${{secrets.APP_STORE_CONNECT_PASSWORD}} | |
jobs: | |
assemble: | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
node-version: [18] | |
steps: | |
- name: Get current date | |
id: date | |
run: echo "::set-output name=timestamp::$(TZ=Asia/Shanghai date +'%y%m%d%H%M')" | |
- name: Checkout Project | |
uses: actions/checkout@v2 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Cache Pods | |
uses: actions/cache@v2 | |
with: | |
path: ios/Pods | |
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
- name: Install pods | |
run: cd ios && pod update --no-repo-update | |
- name: Import signing certificate | |
env: | |
SIGNING_CERTIFICATE_P12_DATA: ${{ env.SIGNING_CERTIFICATE_P12_DATA }} | |
SIGNING_CERTIFICATE_PASSWORD: ${{ env.SIGNING_CERTIFICATE_PASSWORD }} | |
run: | | |
exec .github/scripts/import-certificate.sh | |
- name: Import provisioning profile | |
env: | |
PROVISIONING_PROFILE_DATA: ${{ env.PROVISIONING_PROFILE_DATA }} | |
run: | | |
exec .github/scripts/import-profile.sh | |
- name: Build app | |
env: | |
FL_APP_IDENTIFIER: ${{ env.APP_ID }} | |
FL_UPDATE_PLIST_DISPLAY_NAME: ${{ env.APP_NAME }} | |
FL_UPDATE_PLIST_PATH: taroDemo/Info.plist | |
FL_VERSION_NUMBER_VERSION_NUMBER: ${{ env.VERSION_NUMBER }} | |
FL_BUILD_NUMBER_BUILD_NUMBER: ${{ env.VERSION_NUMBER }}.${{steps.date.outputs.timestamp}} | |
FL_CODE_SIGN_IDENTITY: ${{ env.CODE_SIGN_IDENTITY }} | |
FL_PROVISIONING_PROFILE_SPECIFIER: ${{ env.PROVISIONING_PROFILE_SPECIFIER }} | |
FASTLANE_TEAM_ID: ${{ env.TEAM_ID }} | |
NODE_PATH: ${{ github.workspace }}/node_modules/.pnpm/node_modules:$NODE_PATH | |
run: | | |
cd ios | |
bundle update | |
bundle exec fastlane build_release | |
- name: Upload Ios Products | |
uses: actions/upload-artifact@v2 | |
with: | |
name: app-${{ env.BUILD_TYPE }} | |
path: | | |
${{ github.workspace }}/ios/taroDemo.ipa | |
${{ github.workspace }}/ios/taroDemo.app.dSYM.zip | |
- name: Upload app to App Store Connect | |
env: | |
APP_STORE_CONNECT_USERNAME: ${{ env.APP_STORE_CONNECT_USERNAME }} | |
APP_STORE_CONNECT_PASSWORD: ${{ env.APP_STORE_CONNECT_PASSWORD }} | |
run: | | |
cd ios | |
xcrun altool --upload-app -t ios -f "taroDemo.ipa" -u "$APP_STORE_CONNECT_USERNAME" -p "$APP_STORE_CONNECT_PASSWORD" | |
- name: Rename release assets | |
run: | | |
mv ios/taroDemo.ipa ios/app-${{ env.BUILD_TYPE }}.ipa | |
mv ios/taroDemo.app.dSYM.zip ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip | |
- name: Upload release assets | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
prerelease: ${{ contains(github.ref, 'beta') }} | |
body: ${{ env.VERSION_NUMBER }}.${{steps.date.outputs.timestamp}} | |
files: | | |
ios/app-${{ env.BUILD_TYPE }}.ipa | |
ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |