125 lines
4.7 KiB
YAML
125 lines
4.7 KiB
YAML
name: Mobile Release Production
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*standardnotes/mobile*'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
android:
|
|
defaults:
|
|
run:
|
|
working-directory: packages/mobile
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
- name: Export version from package.json
|
|
run:
|
|
echo "PACKAGE_VERSION=$(grep '"version"' ../web/package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
|
- name: Setup react-native kernel and increase watchers
|
|
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
|
|
- name: Decode Production Android keystore
|
|
run: |
|
|
echo "${{ secrets.ANDROID_KEYSTORE }}" > keystore.keystore.asc
|
|
gpg -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch keystore.keystore.asc > android/app/keystore.keystore
|
|
- name: Install dependencies
|
|
run: yarn install --immutable
|
|
- run: yarn build:mobile
|
|
- name: Ruby Setup for Fastlane
|
|
uses: ruby/setup-ruby@v1
|
|
- name: fastlane
|
|
uses: maierj/fastlane-action@v1.4.0
|
|
env:
|
|
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
|
|
BUILD_NUMBER: ${{ github.run_number }}
|
|
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
|
|
ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD }}
|
|
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
|
GOOGLE_PLAY_JSON_KEY_DATA: ${{ secrets.GOOGLE_PLAY_JSON_KEY_DATA }}
|
|
with:
|
|
lane: 'android prod'
|
|
subdirectory: 'packages/mobile'
|
|
|
|
- name: get-npm-version
|
|
id: package-version
|
|
uses: martinbeentjes/npm-get-version-action@main
|
|
with:
|
|
path: packages/mobile
|
|
|
|
- name: Generate Release Notes
|
|
uses: ./actions/release-notes
|
|
with:
|
|
package: mobile
|
|
id: release-notes
|
|
continue-on-error: true
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
token: ${{ secrets.CI_PAT_TOKEN }}
|
|
tag_name: "@standardnotes/mobile@${{ steps.package-version.outputs.current-version}}"
|
|
name: "Mobile ${{ steps.package-version.outputs.current-version }}"
|
|
body: ${{ steps.release-notes.outputs.result }}
|
|
prerelease: true
|
|
draft: false
|
|
files: |
|
|
packages/mobile/android/app/build/outputs/bundle/prodRelease/app-prod-release.aab
|
|
packages/mobile/android/app/build/outputs/apk/prod/release/app-prod-release.apk
|
|
|
|
ios:
|
|
env:
|
|
ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD: true
|
|
defaults:
|
|
run:
|
|
working-directory: packages/mobile
|
|
runs-on: macos-11
|
|
timeout-minutes: 90
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
- name: Export version from package.json
|
|
run:
|
|
echo "PACKAGE_VERSION=$(grep '"version"' ../web/package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
|
- name: Install dependencies
|
|
run: yarn install --immutable && yarn install:pods
|
|
- run: yarn build:mobile
|
|
- name: Set ssh connection to Github
|
|
uses: webfactory/ssh-agent@v0.4.1
|
|
with:
|
|
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
- name: Export Apple AppStore Connect API key
|
|
run: echo "${{ secrets.APPSTORE_CONNECT_KEY }}" > ios/Authkey.p8
|
|
- name: Ruby Setup for Fastlane
|
|
uses: ruby/setup-ruby@v1
|
|
- name: Setup fastlane
|
|
uses: maierj/fastlane-action@v1.4.0
|
|
env:
|
|
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
|
|
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
|
with:
|
|
lane: 'ios setup'
|
|
subdirectory: 'packages/mobile'
|
|
- name: fastlane
|
|
uses: maierj/fastlane-action@v1.4.0
|
|
env:
|
|
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
|
|
APPLE_APP_ID: ${{ secrets.APP_APPLE_ID }}
|
|
APPSTORE_CONNECT_KEY_ID: ${{ secrets.APPSTORE_CONNECT_KEY_ID }}
|
|
APPSTORE_CONNECT_KEY_ISSUER_ID: ${{ secrets.APPSTORE_CONNECT_KEY_ISSUER_ID }}
|
|
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
|
|
FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }}
|
|
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
|
MATCH_CERTIFICATES_URL: ${{ secrets.MATCH_CERTIFICATES_URL }}
|
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
|
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
|
|
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
|
|
BUILD_NUMBER: ${{ github.run_number }}
|
|
with:
|
|
lane: 'ios prod'
|
|
subdirectory: 'packages/mobile'
|
|
|