chore(Cross): [IOAPPX-355] Update release pipeline to upload bundle artifacts #153
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: Release new app version | |
on: | |
pull_request | |
# push: | |
# tags: | |
# - '[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+' | |
jobs: | |
# run-static-checks: | |
# uses: ./.github/workflows/staticcheck.yaml | |
release-android: | |
# needs: run-static-checks | |
environment: prod | |
runs-on: ubuntu-latest | |
steps: | |
- id: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab #v3.5.2 | |
with: | |
fetch-depth: 0 | |
- id: setup | |
uses: ./.github/actions/setup-composite | |
- id: setup-jdk-11 | |
uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 #v3.11.0 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
cache: gradle | |
- id: setup-android-sdk | |
uses: android-actions/setup-android@7c5672355aaa8fde5f97a91aa9a99616d1ace6bc #v2.0.10 | |
- id: setup-ruby | |
uses: ruby/setup-ruby@d2b39ad0b52eca07d23f3aa14fdf2a3fcc1f411c #v1.149.0 | |
with: | |
bundler-cache: true | |
- id: build-release-android | |
if: false | |
run: | | |
./scripts/android-release.sh ./android/app | |
cd android && bundle exec fastlane alpha | |
bundle exec fastlane promote_internal_to_alpha | |
shell: bash | |
env: | |
ENCODED_IOAPP_GOOGLE_SERVICES_JSON_FILE: ${{secrets.ENCODED_IOAPP_GOOGLE_SERVICES_JSON_FILE}} | |
ENCODED_IOAPP_JSON_KEY_FILE: ${{secrets.ENCODED_IOAPP_JSON_KEY_FILE}} | |
ENCODED_IO_APP_RELEASE_KEYSTORE: ${{secrets.ENCODED_IO_APP_RELEASE_KEYSTORE}} | |
ENCODED_IO_APP_SENTRY_PROPERTIES: ${{secrets.ENCODED_IO_APP_SENTRY_PROPERTIES}} | |
IO_APP_RELEASE_STORE_FILE : ${{secrets.IO_APP_RELEASE_STORE_FILE}} | |
IO_APP_RELEASE_STORE_PASSWORD: ${{secrets.IO_APP_RELEASE_STORE_PASSWORD}} | |
IO_APP_RELEASE_KEY_ALIAS: ${{secrets.IO_APP_RELEASE_KEY_ALIAS}} | |
IO_APP_RELEASE_KEY_PASSWORD: ${{secrets.IO_APP_RELEASE_KEY_PASSWORD}} | |
- id: download-universal-apk-from-store | |
# We don't want to fail whole job if the dSYM upload step fails | |
continue-on-error: true | |
run: | | |
./scripts/android-release.sh ./android/app | |
cd android | |
bundle exec fastlane download_apk | |
env: | |
ENCODED_IOAPP_JSON_KEY_FILE: ${{secrets.ENCODED_IOAPP_JSON_KEY_FILE}} | |
RUBYOPT: '-rostruct' # TODO: Remove when https://github.com/fastlane/fastlane/pull/21950 gets released | |
- id: upload-apk | |
if: false | |
# We don't want to fail whole job if the dSYM upload step fails | |
continue-on-error: true | |
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 | |
with: | |
name: app-release.aab | |
path: android/app/build/outputs/bundle/release/app-release.aab | |
release-ios: | |
# needs: run-static-checks | |
if: false | |
environment: prod | |
runs-on: macos-13-xlarge | |
steps: | |
- id: set-xcode-version | |
run: sudo xcode-select -s '/Applications/Xcode_15.2.app/Contents/Developer' | |
shell: bash | |
- id: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab #v3.5.2 | |
with: | |
fetch-depth: 0 | |
- id: setup | |
uses: ./.github/actions/setup-composite | |
- id: setup-ruby | |
uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 #v1.173.0 | |
with: | |
bundler-cache: true | |
- id: prepare-ios-build | |
run: ./scripts/ios-release-build.sh | |
env: | |
APP_STORE_API_KEY_ID: ${{secrets.APP_STORE_API_KEY_ID}} | |
APP_STORE_API_PRIVATE_KEY: ${{secrets.APP_STORE_API_PRIVATE_KEY}} | |
ENCODED_IO_APP_SENTRY_PROPERTIES: ${{secrets.ENCODED_IO_APP_SENTRY_PROPERTIES}} | |
- id: add-ssh-deploy-key | |
run: | | |
echo -e "Host github.com | |
AddKeysToAgent yes | |
IdentityFile ~/.ssh/id_ed25519" > ~/.ssh/config | |
echo -e "$SSH_DEPLOY_KEY" > ~/.ssh/id_ed25519 | |
chmod 400 ~/.ssh/id_ed25519 | |
ssh-add ~/.ssh/id_ed25519 | |
env: | |
SSH_DEPLOY_KEY: ${{secrets.SSH_DEPLOY_KEY}} | |
- id: build-upload-app-store | |
name: Build & submit to App store | |
run: | | |
cd ios | |
bundle exec fastlane beta_circleci_testflight | |
env: | |
LC_ALL: en_US.UTF-8 | |
LANG: en_US.UTF-8 | |
APP_STORE_API_KEY_ID: ${{secrets.APP_STORE_API_KEY_ID}} | |
APP_STORE_API_PRIVATE_KEY: ${{secrets.APP_STORE_API_PRIVATE_KEY}} | |
APP_STORE_API_KEY_ISSUER_ID: ${{secrets.APP_STORE_API_KEY_ISSUER_ID}} | |
ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD: ${{secrets.ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD}} | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | |
- id: upload-dsym-files | |
# Sometimes the build-upload-app-store step fails for timeout, | |
# in this case we want to upload the dSYM files anyway | |
if: ${{ always() }} | |
# We don't want to fail whole job if the dSYM upload step fails | |
continue-on-error: true | |
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.0.3 | |
with: | |
name: IO.app.dSYM.zip | |
path: ios/IO.app.dSYM.zip | |
retention-days: 60 | |
- id: upload-ipa | |
# We don't want to fail whole job if the dSYM upload step fails | |
continue-on-error: true | |
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 | |
with: | |
name: IO.ipa | |
path: ios/IO.ipa | |
notify-new-version: | |
if: false | |
environment: dev | |
runs-on: ubuntu-latest | |
needs: | |
- release-android | |
- release-ios | |
steps: | |
- id: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab #v3.5.2 | |
- id: setup-node | |
uses: ./.github/actions/setup-composite | |
- id: send-notification | |
run: 'yarn ts-node --skip-project -O ''{"lib":["es2015"]}'' scripts/ts/notifyNewAppVersion/notifyNewAppVersion.ts' | |
env: | |
IO_APP_SLACK_HELPER_BOT_TOKEN: ${{ secrets.IO_APP_SLACK_HELPER_BOT_TOKEN }} |