[#493] Generate release notes when uploading builds to Firebase/TestFlight #287
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: Test Upload Build to Firebase | |
# SECRETS needed: | |
### SSH_PRIVATE_KEY for Match Repo | |
### MATCH_PASS | |
### FIREBASE_GOOGLE_APPLICATION_CREDENTIALS_BASE64 | |
### STAGING_FIREBASE_APP_ID | |
### TEAM_ID | |
on: | |
pull_request | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build | |
runs-on: macOS-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Create Release Note | |
run: | | |
echo "$(git log -1 | grep -o "\[.*")" | |
echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV | |
echo "$(git log -1 | grep -o "\[.*")" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
- name: Install SSH key | |
uses: webfactory/ssh-agent@v0.7.0 | |
with: | |
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} | |
- name: Install Firebase-Tools | |
run: | | |
yarn global add firebase-tools | |
echo "$(yarn global bin)" >> $GITHUB_PATH | |
- name: Read Google Service Account | |
id: firebase_service_account | |
uses: timheuer/base64-to-file@v1.2 | |
with: | |
fileName: 'firebase_service_account.json' | |
encodedString: ${{ secrets.FIREBASE_GOOGLE_APPLICATION_CREDENTIALS_BASE64 }} | |
- name: Bundle install | |
run: bundle install | |
- name: Cache Pods | |
uses: actions/cache@v3 | |
id: cocoapodCache | |
with: | |
path: Pods | |
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
- name: Start Install Script for Template App | |
run: swift run --package-path Scripts/Swift/iOSTemplateMaker iOSTemplateMaker make --bundle-id-production co.nimblehq.ios.templates --bundle-id-staging co.nimblehq.ios.templates.staging --project-name TemplateApp --interface UIKit | |
- name: Start Setup Script for Template App Firebase Upload | |
run: swift run --package-path Scripts/Swift/iOSTemplateMaker iOSTemplateMaker make-test-firebase | |
env: | |
MATCH_REPO: ${{ secrets.MATCH_REPO }} | |
STAGING_FIREBASE_APP_ID: ${{ secrets.STAGING_FIREBASE_APP_ID }} | |
TEAM_ID: ${{ secrets.TEAM_ID }} | |
- name: Set Up Test Project for Firebase | |
run: bundle exec fastlane setUpTestProject | |
- name: Sync Ad Hoc Code Signing | |
run: bundle exec fastlane syncAdHocStagingCodeSigning | |
env: | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASS }} | |
- name: Build App and Distribute to Firebase | |
run: bundle exec fastlane buildStagingAndUploadToFirebase | |
env: | |
GOOGLE_APPLICATION_CREDENTIALS: ${{ steps.firebase_service_account.outputs.filePath }} | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ format('v{0}({1})-{2}', env.VERSION_NUMBER, env.BUILD_NUMBER, env.TAG_TYPE) }} | |
path: | | |
${{ env.IPA_OUTPUT_PATH }} | |
${{ env.DSYM_OUTPUT_PATH }} | |
env: | |
TAG_TYPE: Staging_Firebase | |
- name: Remove keychain | |
if: ${{ always() }} | |
run: bundle exec fastlane removeKeychain | |
continue-on-error: true |