name: Public Beta on: push: branches: - 'master' paths: - '.beta-build' env: APP_STORE_CONNECT_API_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY }} FASTLANE_USERNAME: ${{ secrets.FASTLANE_USERNAME }} FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }} MATCH_GIT_PRIVATE_KEY: ${{ secrets.MATCH_GIT_PRIVATE_KEY }} MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }} MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }} PILOT_USERNAME: ${{ secrets.PILOT_USERNAME }} PILOT_GROUPS: ${{ secrets.PILOT_GROUPS }} PILOT_BETA_APP_FEEDBACK: ${{ secrets.PILOT_BETA_APP_FEEDBACK }} PILOT_BETA_APP_REVIEW_INFO: ${{ secrets.PILOT_BETA_APP_REVIEW_INFO }} CHANGELOG_PREFACE: ${{ secrets.CHANGELOG_PREFACE }} jobs: build_upload_ios: runs-on: macos-11 timeout-minutes: 60 steps: - uses: actions/checkout@v2 with: submodules: true - name: Prepare build uses: ./.github/actions/prepare-build-app - name: Build iOS (.ipa) run: | bundle exec fastlane --env ios,beta create_archive - name: Submit to TestFlight run: | export PILOT_CHANGELOG=`ci/build-changelog.sh ios` export PILOT_IPA="dist/ios/Passepartout.ipa" bundle exec fastlane --env ios,beta store_beta build_upload_mac: runs-on: macos-11 timeout-minutes: 60 steps: - uses: actions/checkout@v2 with: submodules: true - name: Prepare build uses: ./.github/actions/prepare-build-app - name: Build macOS (.pkg) run: | bundle exec fastlane --env mac,beta create_archive - name: Submit to TestFlight run: | export PILOT_CHANGELOG=`ci/build-changelog.sh mac` export PILOT_PKG="dist/mac/Passepartout.pkg" bundle exec fastlane --env mac,beta store_beta release_public_beta: runs-on: ubuntu-latest needs: [build_upload_ios, build_upload_mac] environment: name: public_beta url: https://testflight.apple.com/join/K71mtLjZ env: PILOT_USERNAME: ${{ secrets.PILOT_USERNAME }} PILOT_GROUPS: ${{ secrets.PILOT_GROUPS }} PILOT_DISTRIBUTE_ONLY: true steps: - name: Check out repository uses: actions/checkout@v2 with: submodules: true - name: Prepare Ruby bundle uses: ruby/setup-ruby@v1 with: bundler-cache: true - name: Publish on TestFlight (iOS) run: | export PILOT_APP_VERSION=`ci/version-number.sh ios` export PILOT_BUILD_NUMBER=`ci/build-number.sh ios` bundle exec fastlane --env ios,beta store_beta # - name: Publish on TestFlight (macOS) # run: | # export PILOT_APP_VERSION=`ci/version-number.sh mac` # export PILOT_BUILD_NUMBER=`ci/build-number.sh mac` # bundle exec fastlane --env mac,beta store_beta - name: Tag beta run: | export VERSION=`ci/version-number.sh ios` export BUILD=`ci/version-number.sh ios` git tag "v$VERSION-b$BUILD" && git push --tags submit_for_app_review: runs-on: ubuntu-latest needs: release_public_beta environment: name: app_review env: DELIVER_USERNAME: ${{ secrets.DELIVER_USERNAME }} DELIVER_FORCE: true steps: - name: Check out repository uses: actions/checkout@v2 with: submodules: true - name: Prepare Ruby bundle uses: ruby/setup-ruby@v1 with: bundler-cache: true - name: Submit for App Review (iOS) run: | export DELIVER_APP_VERSION=`ci/version-number.sh ios` export DELIVER_BUILD_NUMBER=`ci/build-number.sh ios` bundle exec fastlane --env ios store_review add_id_info_uses_idfa:false - name: Submit for App Review (macOS) run: | export DELIVER_APP_VERSION=`ci/version-number.sh mac` export DELIVER_BUILD_NUMBER=`ci/build-number.sh mac` bundle exec fastlane --env mac store_review add_id_info_uses_idfa:false release_to_app_store: runs-on: ubuntu-latest needs: submit_for_app_review environment: name: app_store steps: - name: Check out repository uses: actions/checkout@v2 with: submodules: true - name: Import GPG key uses: crazy-max/ghaction-import-gpg@v4 with: gpg_private_key: ${{ secrets.GPG_KEY }} passphrase: ${{ secrets.GPG_PASSPHRASE }} git_user_signingkey: true git_commit_gpgsign: true git_tag_gpgsign: true git_push_gpgsign: false - name: Tag release id: tag_release run: | scripts/ci/commit-release.sh git pull && git push && git push --tags echo "::set-output name=tag_name::`git describe`" - name: Assemble notes run: | export RELEASE_NOTES="release-notes.txt" echo "# App Store" >$RELEASE_NOTES echo >>$RELEASE_NOTES echo "## iOS" >>$RELEASE_NOTES echo >>$RELEASE_NOTES cat Passepartout/App/iOS/fastlane/metadata/en-US/release_notes.txt >>$RELEASE_NOTES echo "## macOS" >>$RELEASE_NOTES echo >>$RELEASE_NOTES cat Passepartout/App/macOS/fastlane/metadata/en-US/release_notes.txt >>$RELEASE_NOTES - name: Publish release uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag_release.outputs.tag_name }} body_path: release-notes.txt files: | release-notes.txt