passepartout-apple/.github/workflows/beta.yml

165 lines
5.6 KiB
YAML
Raw Normal View History

2021-11-28 15:54:35 +00:00
name: Public Beta
on:
2021-11-30 11:41:42 +00:00
push:
branches:
- 'master'
paths:
- '.beta-build'
env:
2021-10-16 09:47:25 +00:00
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:
2021-11-12 12:52:02 +00:00
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:
2021-11-12 12:52:02 +00:00
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)
2021-10-01 12:32:08 +00:00
run: |
bundle exec fastlane --env mac,beta create_archive
- name: Submit to TestFlight
2021-10-05 09:24:55 +00:00
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]
2021-10-05 09:24:55 +00:00
environment:
name: public_beta
url: https://testflight.apple.com/join/K71mtLjZ
2021-10-05 09:24:55 +00:00
env:
PILOT_USERNAME: ${{ secrets.PILOT_USERNAME }}
PILOT_GROUPS: ${{ secrets.PILOT_GROUPS }}
PILOT_DISTRIBUTE_ONLY: true
2021-10-05 09:24:55 +00:00
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)
2021-10-01 12:32:08 +00:00
run: |
2021-10-18 15:26:47 +00:00
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
2021-10-06 10:24:49 +00:00
submit_for_app_review:
runs-on: ubuntu-latest
needs: release_public_beta
2021-10-06 10:24:49 +00:00
environment:
name: app_review
env:
DELIVER_USERNAME: ${{ secrets.DELIVER_USERNAME }}
2021-10-16 13:56:16 +00:00
DELIVER_FORCE: true
2021-10-06 10:24:49 +00:00
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: |
2021-10-18 15:26:47 +00:00
export DELIVER_APP_VERSION=`ci/version-number.sh ios`
export DELIVER_BUILD_NUMBER=`ci/build-number.sh ios`
2021-10-09 14:53:33 +00:00
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