name: Compatibility Matrix Testing on: workflow_dispatch: inputs: CMT_MATRIX: description: "A JSON object representing the testing matrix" required: true type: string DESKTOP_VERSION: description: "The desktop 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@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: name: instance-details.json path: instance-details.json retention-days: 1 calculate-commit-hash: runs-on: ubuntu-22.04 outputs: DESKTOP_SHA: ${{ steps.repo.outputs.DESKTOP_SHA }} steps: - name: cmt/checkout-desktop uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: ${{ inputs.DESKTOP_VERSION }} - name: cmt/calculate-mattermost-sha id: repo run: echo "DESKTOP_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@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: repository_full_name: mattermost/desktop commit_sha: ${{ needs.calculate-commit-hash.outputs.DESKTOP_SHA }} context: e2e/compatibility-matrix-testing description: "Compatibility Matrix Testing for ${{ inputs.DESKTOP_VERSION }} version" status: pending # Input follows the below schema # { # "environment": [ # { # "os": "linux", # "runner": "ubuntu-22.04" # }, # { # "os": "macos", # "runner": "macos-13" # }, # { # "os": "windows", # "runner": "windows-2022" # } # ], # "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/" # } # ] # } e2e: name: ${{ matrix.environment.os }}-${{ matrix.server.version }} uses: ./.github/workflows/e2e-functional-template.yml needs: - update-initial-status strategy: fail-fast: false matrix: ${{ fromJson(inputs.CMT_MATRIX) }} secrets: inherit with: runs-on: ${{ matrix.environment.runner }} cmt: true MM_TEST_SERVER_URL: ${{ matrix.server.url }} DESKTOP_VERSION: ${{ inputs.DESKTOP_VERSION }} # We need to duplicate here in order to set the proper commit status # https://mattermost.atlassian.net/browse/CLD-5815 update-failure-final-status: runs-on: ubuntu-22.04 if: failure() || cancelled() needs: - calculate-commit-hash - e2e steps: - uses: mattermost/actions/delivery/update-commit-status@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: repository_full_name: mattermost/desktop commit_sha: ${{ needs.calculate-commit-hash.outputs.DESKTOP_SHA }} context: e2e/compatibility-matrix-testing description: "Compatibility Matrix Testing for ${{ inputs.DESKTOP_VERSION }} version" status: failure # https://mattermost.atlassian.net/browse/CLD-5815 update-success-final-status: runs-on: ubuntu-22.04 if: success() needs: - calculate-commit-hash - e2e steps: - uses: mattermost/actions/delivery/update-commit-status@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: repository_full_name: mattermost/desktop commit_sha: ${{ needs.calculate-commit-hash.outputs.DESKTOP_SHA }} context: e2e/compatibility-matrix-testing description: "Compatibility Matrix Testing for ${{ inputs.DESKTOP_VERSION }} version" status: success