on: push: tags: - 'v*' jobs: build: runs-on: macos-latest env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps BUNDLE_GEMFILE: ${{ github.workspace }}/ios/Gemfile steps: - uses: actions/checkout@v4 - name: Set up ruby env uses: ruby/setup-ruby@v1 with: ruby-version: 3.3 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Install Flutter uses: subosito/flutter-action@v2 with: channel: stable flutter-version: 3.22.0 cache: true - name: Infer version number from git tag id: version env: REF_NAME: ${{ github.ref_name }} run: # remove the 'v' prefix from the tag name echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV - name: Setup SSH key for match git repo # and mark the host as known run: | echo $MATCH_REPO_SSH_KEY | base64 --decode > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -p 2222 git.kluster.moll.re > ~/.ssh/known_hosts env: MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} - name: Install dependencies and clean up run: | flutter pub get bundle exec pod install flutter clean bundle exec pod cache clean --all working-directory: ios - name: Run fastlane lane run: bundle exec fastlane deploy_release --verbose working-directory: ios env: BUILD_NUMBER: ${{ github.run_number }} # BUILD_NAME is implicitly available GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }} IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}