137 lines
4.3 KiB
YAML
137 lines
4.3 KiB
YAML
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
|