Skip to content

Compatibility Matrix Testing #41

Compatibility Matrix Testing

Compatibility Matrix Testing #41

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 }}
MM_SERVER_VERSION: ${{ matrix.server.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