name: Compatibility Matrix Testing on: workflow_dispatch: inputs: CMT_MATRIX: description: "A JSON object representing the testing matrix" required: true type: string MOBILE_VERSION: description: "The mattermost mobile version to test" required: true jobs: ## This is picked up after the finish for cleanup upload-cmt-server-detals: runs-on: ubuntu-22.04 steps: - name: cmt/generate-instance-details-file run: echo '${{ inputs.CMT_MATRIX }}' > instance-details.json - name: cmt/upload-instance-details uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: instance-details.json path: instance-details.json retention-days: 1 calculate-commit-hash: runs-on: ubuntu-22.04 outputs: MOBILE_SHA: ${{ steps.repo.outputs.MOBILE_SHA }} steps: - name: cmt/checkout-mobile uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.MOBILE_VERSION }} - name: cmt/calculate-mattermost-sha id: repo run: echo "MOBILE_SHA=$(git rev-parse HEAD)" >> ${GITHUB_OUTPUT} update-initial-status: runs-on: ubuntu-22.04 needs: - calculate-commit-hash steps: - uses: mattermost/actions/delivery/update-commit-status@d5174b860704729f4c14ef8489ae075742bfa08a env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ needs.calculate-commit-hash.outputs.MOBILE_SHA }} context: e2e/compatibility-matrix-testing description: "Compatibility Matrix Testing for ${{ inputs.MOBILE_VERSION }} version" status: pending # Input follows the below schema # { # "server": [ # { # "version": "9.6.1", # "url": "https://delivery-cmt-8467830017-9-6-1.test.mattermost.cloud/" # }, # { # "version": "9.5.2", # "url": "https://delivery-cmt-8467830017-9-5-2.test.mattermost.cloud/" # } # ] # } build-ios-simulator: runs-on: macos-14 needs: - update-initial-status steps: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.MOBILE_VERSION }} - name: Prepare iOS Build uses: ./.github/actions/prepare-ios-build - name: Build iOS Simulator env: TAG: "${{ inputs.MOBILE_VERSION }}" AWS_ACCESS_KEY_ID: "${{ secrets.MM_MOBILE_BETA_AWS_ACCESS_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.MM_MOBILE_BETA_AWS_SECRET_ACCESS_KEY }}" GITHUB_TOKEN: "${{ secrets.MM_MOBILE_GITHUB_TOKEN }}" run: bundle exec fastlane ios simulator --env ios.simulator working-directory: ./fastlane - name: Upload iOS Simulator Build uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: ios-build-simulator-${{ github.run_id }} path: Mattermost-simulator-x86_64.app.zip detox-e2e: name: mobile-cmt-${{ matrix.server.version }} uses: ./.github/workflows/e2e-detox-template.yml needs: - build-ios-simulator strategy: fail-fast: false matrix: ${{ fromJson(inputs.CMT_MATRIX) }} secrets: inherit with: run-ios-tests: true run-type: "RELEASE" MM_TEST_SERVER_URL: ${{ matrix.server.url }} MOBILE_VERSION: ${{ inputs.MOBILE_VERSION }} update-final-status: runs-on: ubuntu-22.04 needs: - calculate-commit-hash - detox-e2e steps: - uses: mattermost/actions/delivery/update-commit-status@main env: GITHUB_TOKEN: ${{ github.token }} with: repository_full_name: ${{ github.repository }} commit_sha: ${{ needs.calculate-commit-hash.outputs.MOBILE_SHA }} context: e2e/compatibility-matrix-testing description: Compatibility Matrix Testing for ${{ inputs.MOBILE_VERSION }} version status: ${{ needs.detox-e2e.outputs.STATUS }} target_url: ${{ needs.detox-e2e.outputs.TARGET_URL }}