name: Build alpha release on: # Triggers the workflow on any pull request pull_request: types: [ labeled, synchronize, opened, reopened ] env: # Make the git branch for a PR available to our Fastfile MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }} jobs: build: # Only run for PRs that contain the trigger label. The action will fail for forks due to # missing secrets, but there's no need to handle this as it won't run automatically. if: contains(github.event.pull_request.labels.*.name, 'Trigger-PR-Build') name: Release runs-on: macos-14 concurrency: # Only allow a single run of this workflow on each branch, automatically cancelling older runs. group: alpha-${{ github.head_ref }} cancel-in-progress: true steps: - uses: actions/checkout@v2 # Common cache # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job - name: Cache CocoaPods libraries uses: actions/cache@v2 with: path: Pods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- - name: Cache Ruby gems uses: actions/cache@v2 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | ${{ runner.os }}-gems- # Make sure we use the latest version of MatrixSDK - name: Reset MatrixSDK pod run: rm -rf Pods/MatrixSDK # Common setup # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job - name: Brew bundle run: brew bundle - name: Bundle install run: | bundle config path vendor/bundle bundle install --jobs 4 --retry 3 - name: Use right MatrixSDK versions run: bundle exec fastlane point_dependencies_to_related_branches # Import alpha release private signing certificate - name: Import signing certificate uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.ALPHA_CERTIFICATES_P12 }} p12-password: ${{ secrets.ALPHA_CERTIFICATES_P12_PASSWORD }} # Main step # The Ad-hoc release link will be referenced as 'DIAWI_FILE_LINK' # and QR link as 'DIAWI_QR_CODE_LINK' when the Diawi upload succeed - name: Build Ad-hoc release and send it to Diawi run: bundle exec fastlane alpha env: APPSTORECONNECT_KEY_ID: ${{ secrets.APPSTORECONNECT_KEY_ID }} APPSTORECONNECT_KEY_ISSUER_ID: ${{ secrets.APPSTORECONNECT_KEY_ISSUER_ID }} APPSTORECONNECT_KEY_CONTENT: ${{ secrets.APPSTORECONNECT_KEY_CONTENT }} DIAWI_API_TOKEN: ${{ secrets.DIAWI_API_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - name: Add or update PR comment with Ad-hoc release informations uses: NejcZdovc/comment-pr@v1 with: message: | :iphone: Scan the QR code below to install the build for this PR. :lock: This build is for internal testing purpose. Only devices listed in the ad-hoc provisioning profile can install Element Alpha. ![QR code](${{ env.DIAWI_QR_CODE_LINK }}) If you can't scan the QR code you can install the build via this link: ${{ env.DIAWI_FILE_LINK }} # Enables to identify and update existing Ad-hoc release message on new commit in the PR identifier: "GITHUB_COMMENT_ADHOC_RELEASE" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}