--- name: build-ios-beta on: push: branches: - build-beta-[0-9]+ - build-beta-ios-[0-9]+ - build-beta-sim-[0-9]+ env: NODE_VERSION: 22.14.0 TERM: xterm INTUNE_ENABLED: 'true' jobs: test: runs-on: ubuntu-22.04 steps: - name: ci/checkout-repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: ci/test uses: ./.github/actions/test build-ios-simulator: runs-on: macos-15-large if: ${{ !contains(github.ref_name, 'beta-ios') }} needs: - test permissions: id-token: write contents: read steps: - name: ci/checkout-repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: ci/prepare-ios-build uses: ./.github/actions/prepare-ios-build with: intune-enabled: ${{ env.INTUNE_ENABLED }} intune-ssh-private-key: ${{ secrets.MM_MOBILE_INTUNE_DEPLOY_KEY }} - name: ci/build-ios-simulator env: TAG: "${{ github.ref_name }}" AWS_ACCESS_KEY_ID: "${{ secrets.MM_MOBILE_BETA_AWS_ACCESS_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.MM_MOBILE_BETA_AWS_SECRET_ACCESS_KEY }}" MATTERMOST_WEBHOOK_URL: "${{ secrets.MM_MOBILE_BETA_MATTERMOST_WEBHOOK_URL }}" GITHUB_TOKEN: "${{ secrets.MM_MOBILE_GITHUB_TOKEN }}" run: bundle exec fastlane ios simulator --env ios.simulator working-directory: ./fastlane - name: ci/upload-ios-pr-simulator uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: ios-build-simulator-${{ github.run_id }} path: Mattermost-simulator-x86_64.app.zip # Logic for new bucket upload - name: Configure AWS credentials new bucket uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1 with: aws-region: us-east-1 role-to-assume: ${{ secrets.MM_MOBILE_RELEASE_AWS_ROLE_TO_ASSUME }} - name: ci/upload-ios-simulator-new-bucket env: TAG: "${{ github.ref_name }}" AWS_NEW_BUCKET_NAME: "${{ secrets.MM_MOBILE_RELEASE_AWS_NEW_BUCKET_NAME }}" MATTERMOST_WEBHOOK_URL: "${{ secrets.MM_MOBILE_BETA_MATTERMOST_WEBHOOK_URL }}" GITHUB_TOKEN: "${{ secrets.MM_MOBILE_GITHUB_TOKEN }}" run: bundle exec fastlane ios upload_artifacts_to_s3 --env ios.simulator output_file:"Mattermost-simulator-x86_64.app.zip" working-directory: ./fastlane build-and-deploy-ios-beta: runs-on: macos-15-large if: ${{ !contains(github.ref_name, 'beta-sim') }} needs: - test permissions: id-token: write contents: read steps: - name: ci/checkout-repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: ci/setup-ssh-key uses: ./.github/actions/setup-ssh-key with: ssh-private-key: ${{ secrets.MM_MOBILE_PRIVATE_DEPLOY_KEY }} - name: ci/prepare-ios-build uses: ./.github/actions/prepare-ios-build with: intune-enabled: ${{ env.INTUNE_ENABLED }} intune-ssh-private-key: ${{ secrets.MM_MOBILE_INTUNE_DEPLOY_KEY }} - name: ci/build-and-deploy-ios-beta env: AWS_ACCESS_KEY_ID: "${{ secrets.MM_MOBILE_BETA_AWS_ACCESS_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.MM_MOBILE_BETA_AWS_SECRET_ACCESS_KEY }}" MATTERMOST_WEBHOOK_URL: "${{ secrets.MM_MOBILE_BETA_MATTERMOST_WEBHOOK_URL }}" FASTLANE_TEAM_ID: "${{ secrets.MM_MOBILE_FASTLANE_TEAM_ID }}" IOS_API_ISSUER_ID: "${{ secrets.MM_MOBILE_IOS_API_ISSUER_ID }}" IOS_API_KEY: "${{ secrets.MM_MOBILE_IOS_API_KEY }}" IOS_API_KEY_ID: "${{ secrets.MM_MOBILE_IOS_API_KEY_ID }}" MATCH_GIT_URL: "${{ secrets.MM_MOBILE_MATCH_GIT_URL }}" MATCH_PASSWORD: "${{ secrets.MM_MOBILE_MATCH_PASSWORD }}" SENTRY_AUTH_TOKEN: "${{ secrets.MM_MOBILE_SENTRY_AUTH_TOKEN }}" SENTRY_DSN_IOS: "${{ secrets.MM_MOBILE_BETA_SENTRY_DSN_IOS }}" run: | echo "::group::Build" bundle exec fastlane ios build --env ios.beta echo "::endgroup::" echo "::group::Deploy to TestFlight" bundle exec fastlane ios deploy file:"${{ github.workspace }}/*.ipa" --env ios.beta echo "::endgroup::" working-directory: ./fastlane - name: ci/upload-ios-beta-build uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: ios-build-beta-${{ github.run_id }} path: "*.ipa" # Logic for new bucket upload - name: Configure AWS credentials new bucket uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1 with: aws-region: us-east-1 role-to-assume: ${{ secrets.MM_MOBILE_RELEASE_AWS_ROLE_TO_ASSUME }} - name: ci/upload-ios-beta-new-bucket env: AWS_NEW_BUCKET_NAME: "${{ secrets.MM_MOBILE_RELEASE_AWS_NEW_BUCKET_NAME }}" MATTERMOST_WEBHOOK_URL: "${{ secrets.MM_MOBILE_BETA_MATTERMOST_WEBHOOK_URL }}" run: | echo "::group::Upload to new S3 bucket" bundle exec fastlane ios upload_artifacts_to_s3 --env ios.beta echo "::endgroup::" working-directory: ./fastlane