Skip to content

Adding iOS workflow #60

Adding iOS workflow

Adding iOS workflow #60

Workflow file for this run

name: Build and Deploy to App Distribution and Testflight
on:
workflow_dispatch:
push:
branches:
- "add-ios-workflow"
jobs:
extract-version:
name: Extract Version
runs-on: ubuntu-latest
outputs:
version: "0.0.5"
steps:
- name: Extract version
id: extract-version
run: |
VERSION="${{ github.ref_name }}"
echo "Original version: $VERSION"
VERSION="${VERSION#"v"}"
echo "Processed version: $VERSION"
echo "::set-output name=version::$VERSION"
ios-build:
needs: extract-version
environment: development
name: iOS development build
runs-on: macos-latest
steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.12.0
- name: Checkout repo from dev branch
uses: actions/checkout@v3
- name: create-json
id: add-firebase-credentials
uses: jsdaniell/create-json@v1.2.2
with:
name: "wildlife-watcher-service-account.json"
json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }}
dir: "./fastlane"
- name: Copy Provisioning certificate
run: echo -n "${{ secrets.IOS_CERT_PROVISION }}" | base64 --decode > ./fastlane/profile.mobileprovision
- name: Copy private key
run: echo -n "${{ secrets.IOS_CERT_PRIVATE_KEY }}" | base64 --decode > ./fastlane/cert.p12
- name: Copy Google Services plist file
run: echo -n "${{ secrets.IOS_GOOGLE_SERVICES_PLIST }}" | base64 --decode > ./ios/GoogleService-Info.plist
- name: Install npm dependency
run: npm install
- name: Install bundler
run: gem install bundler -v 2.4.10
- name: Install gem plugins
run: bundle install
- name: Install dependencies with CocoaPods
run: cd ios && bundle exec pod install && cd ..
- name: Run fastlane
run: bundle exec fastlane ios build_release
env:
IOS_CERT_PASSWORD: ${{ secrets.IOS_CERT_PASSWORD }}
IOS_KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }}
APP_VERSION: ${{ steps.extract-version.outputs.version }}
# android-build:
# needs: extract-version
# environment: development
# name: Android development build
# runs-on: ubuntu-latest
# container:
# image: reactnativecommunity/react-native-android
# steps:
# - name: Cancel previous runs
# uses: styfle/cancel-workflow-action@0.12.0
# - name: Checkout repo from dev branch
# uses: actions/checkout@v3
# - name: create-json
# id: add-firebase-credentials
# uses: jsdaniell/create-json@v1.2.2
# with:
# name: "wildlife-watcher-service-account.json"
# json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }}
# dir: "./fastlane"
# - name: create-json
# id: add-android-credentials
# uses: jsdaniell/create-json@v1.2.2
# with:
# name: "google-services.json"
# json: ${{ secrets.ANDROID_GOOGLE_SERVICES_JSON }}
# dir: "./android/app"
# - name: Copy keystore file
# run: echo -n "${{ secrets.ANDROID_RELEASE_KEYSTORE }}" | base64 --decode > ./android/keystores/release.keystore
# - name: Copy keystore properties file
# run: echo -n "${{ secrets.ANDROID_RELEASE_KEYSTORE_PROPS }}" | base64 --decode > ./android/keystores/release.keystore.properties
# - name: Install npm dependency
# run: npm install
# - name: Install bundler
# run: |
# gem install bundler -v 2.4.10
# - name: Install gem plugins
# run: |
# bundle install
# - name: Run fastlane
# run: |
# echo ${{ github.run_number }}
# bundle exec fastlane android build_release
# env:
# APP_VERSION: ${{ steps.extract-version.outputs.version }}
# APP_CODE_VERSION: ${{ github.run_number }}
# APP_ID: ${{ secrets.APP_ID }}
# ANDROID_ARTEFACT_PATH: ${{ secrets.ANDROID_ARTEFACT_PATH }}
# TESTERS: ${{ vars.TESTERS }}