diff --git a/.github/workflows/compatibility-matrix-testing.yml b/.github/workflows/compatibility-matrix-testing.yml index 8e74daff..26be36a0 100644 --- a/.github/workflows/compatibility-matrix-testing.yml +++ b/.github/workflows/compatibility-matrix-testing.yml @@ -3,8 +3,8 @@ name: Compatibility Matrix Testing on: workflow_dispatch: inputs: - MM_TEST_SERVER_URL: - description: "The test server URL" + CMT_MATRIX: + description: "A JSON object representing the testing matrix" required: true type: string DESKTOP_VERSION: @@ -12,6 +12,20 @@ on: 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: @@ -31,7 +45,7 @@ jobs: needs: - calculate-commit-hash steps: - - uses: mattermost/actions/delivery/update-commit-status@a74f6d87f847326c04d326bf1908da40cb9b3556 + - uses: mattermost/actions/delivery/update-commit-status@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -41,31 +55,46 @@ jobs: description: "Compatibility Matrix Testing for ${{ inputs.DESKTOP_VERSION }} version" status: pending - e2e-linux: + # 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: ubuntu-22.04 + runs-on: ${{ matrix.environment.runner }} cmt: true - MM_TEST_SERVER_URL: ${{ inputs.MM_TEST_SERVER_URL }} - DESKTOP_VERSION: ${{ inputs.DESKTOP_VERSION }} - - e2e-macos: - uses: ./.github/workflows/e2e-functional-template.yml - secrets: inherit - with: - runs-on: macos-13 - cmt: true - MM_TEST_SERVER_URL: ${{ inputs.MM_TEST_SERVER_URL }} - DESKTOP_VERSION: ${{ inputs.DESKTOP_VERSION }} - - e2e-windows: - uses: ./.github/workflows/e2e-functional-template.yml - secrets: inherit - with: - runs-on: windows-2022 - cmt: true - MM_TEST_SERVER_URL: ${{ inputs.MM_TEST_SERVER_URL }} + 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 @@ -75,11 +104,9 @@ jobs: if: failure() || cancelled() needs: - calculate-commit-hash - - e2e-linux - - e2e-macos - - e2e-windows + - e2e steps: - - uses: mattermost/actions/delivery/update-commit-status@a74f6d87f847326c04d326bf1908da40cb9b3556 + - uses: mattermost/actions/delivery/update-commit-status@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -95,11 +122,9 @@ jobs: if: success() needs: - calculate-commit-hash - - e2e-linux - - e2e-macos - - e2e-windows + - e2e steps: - - uses: mattermost/actions/delivery/update-commit-status@a74f6d87f847326c04d326bf1908da40cb9b3556 + - uses: mattermost/actions/delivery/update-commit-status@746563b58e737a17a8ceb00b84a813b9e6e1b236 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: