Skip to content

version helper

version helper #49

name: Build sample apps
on:
push:
workflow_dispatch: # allow manual run
concurrency: # cancel previous workflow run if one exists.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
XCODE_VERSION: "15.3"
jobs:
build-ios-sample-apps:
runs-on: macos-14
name: Building sample app ${{ matrix.sample-app }}
strategy:
fail-fast: false # if one sample app fails to build, let the other sample apps continue to build and not cancel them.
matrix: # Use a matrix allowing us to build multiple apps in parallel. Just add an entry to the matrix and it will build!
sample-app:
# List all sample apps you want to have compiled.
# List item is name of directory inside of "apps" directory for the corresponding app to compile.
- "amiapp_flutter"
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-flutter
- name: Install CLI tools used in CI script
shell: bash
run: |
brew install sd # used in CI script as an easier to use sed CLI. Replaces text in files.
brew install xcbeautify # used by fastlane for output
- name: Read Ruby Version
id: read_ruby_version
working-directory: "apps/${{ matrix.sample-app }}"
run: echo "RUBY_VERSION=$(cat .ruby-version)" >> $GITHUB_ENV
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true # cache tools to make builds faster in future
- name: Install Ruby dependencies
run: bundle install
working-directory: "apps/${{ matrix.sample-app }}"
- name: Generate New Version
uses: maierj/[email protected]
with:
subdirectory: "apps/${{ matrix.sample-app }}"
lane: "generate_new_version"
options: '{"branch_name":"${{ github.ref_name }}", "pull_request_number":"${{ github.event.pull_request.number }}"}'
- name: Update Flutter SDK Version
uses: maierj/[email protected]
with:
lane: "update_flutter_sdk_version"
subdirectory: "apps/${{ matrix.sample-app }}"
env:
SDK_VERSION_NAME: ${{ env.SDK_VERSION_NAME }}
APP_VERSION_NAME: ${{ env.APP_VERSION_NAME }}
APP_VERSION_CODE: ${{ env.APP_VERSION_CODE }}
- name: Update Sample App Version
uses: maierj/[email protected]
with:
lane: "update_flutter_app_version"
subdirectory: "apps/${{ matrix.sample-app }}"
env:
SDK_VERSION_NAME: ${{ env.SDK_VERSION_NAME }}
APP_VERSION_NAME: ${{ env.APP_VERSION_NAME }}
APP_VERSION_CODE: ${{ env.APP_VERSION_CODE }}
- name: Install flutter dependencies for SDK
run: flutter pub get
- name: Install flutter dependencies for sample app
run: flutter pub get
working-directory: "apps/${{ matrix.sample-app }}"
- name: Setup workspace credentials in flutter environment files
run: |
cp "apps/${{ matrix.sample-app }}/.env.example" "apps/${{ matrix.sample-app }}/.env"
sd "siteid" "${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app)] }}" "apps/${{ matrix.sample-app }}/.env"
sd "apikey" "${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_API_KEY', matrix.sample-app)] }}" "apps/${{ matrix.sample-app }}/.env"
- name: Setup workspace credentials in iOS environment files
run: |
cp "apps/${{ matrix.sample-app }}/ios/Env.swift.example" "apps/${{ matrix.sample-app }}/ios/Env.swift"
sd "siteid" "${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app)] }}" "apps/${{ matrix.sample-app }}/ios/Env.swift"
sd "apiKey" "${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_API_KEY', matrix.sample-app)] }}" "apps/${{ matrix.sample-app }}/ios/Env.swift"
# - name: Setup iOS environment for sample app
# uses: ./.github/actions/setup-ios
# with:
# xcode-version: ${{ env.XCODE_VERSION }}
# gemfile-directory: "apps/${{ matrix.sample-app }}"
#
# - name: Cache CocoaPods downloaded dependencies for faster builds in the future
# uses: actions/cache@v4
# with:
# path: apps/${{ matrix.sample-app }}/Pods
# key: ${{ runner.os }}-${{ matrix.sample-app }}-Pods-${{ github.ref }}
# restore-keys: |
# ${{ runner.os }}-${{ matrix.sample-app }}-Pods
#
# - name: pod install
# run: pod install --project-directory=ios
# working-directory: "apps/${{ matrix.sample-app }}"
#
# - name: Build and upload iOS app via Fastlane
# uses: maierj/[email protected]
# with:
# lane: "ios build"
# subdirectory: "apps/${{ matrix.sample-app }}"
# options: ${{ inputs.fastlane-build-args }}
# env:
# GOOGLE_CLOUD_MATCH_READONLY_SERVICE_ACCOUNT_B64: ${{ inputs.GOOGLE_CLOUD_MATCH_READONLY_SERVICE_ACCOUNT_B64 }}
# FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64: ${{ inputs.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
- name: Setup Android environment for sample app
uses: ./.github/actions/setup-android
with:
subdirectory: "apps/${{ matrix.sample-app }}"
- name: Build and upload Android app via Fastlane
uses: maierj/[email protected]
with:
lane: 'android build'
subdirectory: "apps/${{ matrix.sample-app }}"
env:
FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64: ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}