Skip to content
Open
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
fe9514e
fix(cmt): POST directly to matterwick instead of relying on workflow_…
May 21, 2026
c41490b
fix(cmt): drop all GITHUB_TOKEN scopes for cmt-provisioner
May 25, 2026
0ce5d27
fix(cmt): quote ${RUN_ID} expansion in jq invocation
May 25, 2026
e2e49b9
fix(e2e): drop push trigger from e2e-nightly-trigger.yml
May 25, 2026
cd36811
fix(e2e): fix macOS e2e failures from crash dialogs and teardown
yasserfaraazkhan May 26, 2026
ddcc6c0
fix(e2e): add blank line before comment to satisfy eslint lines-aroun…
yasserfaraazkhan May 26, 2026
8298749
fix(e2e): use execFileSync instead of execSync, fix misleading comment
yasserfaraazkhan May 26, 2026
a926985
fix(e2e): unblock macOS tests and report per-OS results
yasserfaraazkhan May 26, 2026
0b1facd
fix(ci): pin policy-tests-windows to windows-2022 + add intercom tests
yasserfaraazkhan May 26, 2026
bb174ef
fix(e2e): address remaining macOS/Linux/Windows failures
yasserfaraazkhan May 26, 2026
e7e0dc9
fix(e2e): split inline try/catch onto multiple lines for eslint
yasserfaraazkhan May 26, 2026
b3d7682
fix(e2e): address CI failures across Linux, macOS, and Windows
yasserfaraazkhan May 26, 2026
de6d112
fix tests
yasserfaraazkhan May 26, 2026
7508c9f
Merge remote-tracking branch 'origin/master' into fix/cmt-direct-disp…
yasserfaraazkhan May 26, 2026
090b52d
fix(e2e): fix bad_servers expired-cert reload and copy_link contextmenu
yasserfaraazkhan May 26, 2026
25e40fc
fix(e2e): fix Windows CI failures for deeplink, fullscreen, minimize,…
yasserfaraazkhan May 26, 2026
47fe037
fix(e2e): fix ESLint lines-around-comment and no-multiple-empty-lines…
yasserfaraazkhan May 26, 2026
2cb6e9c
fix(e2e): add blank line before comment in deeplink test (ESLint)
yasserfaraazkhan May 26, 2026
45c8a99
fix(ci): show ran/passed/failed in status checks, drop skipped count
yasserfaraazkhan May 26, 2026
2561cd3
fix(test): add missing on mock to MainWindow in popoutManager unit test
yasserfaraazkhan May 26, 2026
4d8521e
fix: address CodeRabbit inline review findings
yasserfaraazkhan May 26, 2026
8c410ed
revert: restore hardcoded S3 bucket name and URL in e2e workflow
yasserfaraazkhan May 26, 2026
8b865eb
test(popoutManager): add unit tests for registerMainWindowCloseHandle…
yasserfaraazkhan May 27, 2026
9d891fb
Desktop qa agent (#3834)
yasserfaraazkhan May 27, 2026
4d077d0
qa: fix intercom.test.js electron mock — app.once is not a function
cursoragent May 27, 2026
4bfe9d0
qa: add QA report for PR #3829
cursoragent May 27, 2026
912ee16
ci(e2e): scheduled CMT trigger + drop in-workflow cleanup call
yasserfaraazkhan Jun 1, 2026
52a3f0c
ci(e2e): harden Actions permissions + make electron install resilient
yasserfaraazkhan Jun 1, 2026
4b6764e
test: mock electron in unit suites that import it (fix flaky CI failure)
yasserfaraazkhan Jun 1, 2026
f46c763
chore: remove accidentally committed qa-report.md
yasserfaraazkhan Jun 2, 2026
cd735c8
revert(e2e): remove Cursor-automation PR server-URL feature
yasserfaraazkhan Jun 2, 2026
5cde967
revert(e2e): remove Cursor-automation logic (workflows, setup, helper…
yasserfaraazkhan Jun 2, 2026
4a44c88
docs(e2e): drop redundant AGENTS.md note; leave docs unchanged
yasserfaraazkhan Jun 2, 2026
40bbaaa
docs(cmt): correct stale cmt_run_id input description
yasserfaraazkhan Jun 2, 2026
1ddad60
Merge remote-tracking branch 'origin/master' into fix/cmt-direct-disp…
yasserfaraazkhan Jun 3, 2026
473fdf3
fix(e2e): address review — drop popout-close change, gate E2E readiness
yasserfaraazkhan Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 54 additions & 9 deletions .github/workflows/cmt-provisioner.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
name: CMT Provisioner

# This is a stub workflow. Its only purpose is to fire a workflow_run webhook
# to Matterwick, which provisions cloud servers for each server version and
# then dispatches compatibility-matrix-testing.yml with the CMT_MATRIX input.
# Trigger workflow for Compatibility Matrix Testing (CMT).
#
# Usage: Go to Actions → CMT Provisioner → Run workflow
# Previous design: this workflow just echoed the inputs and relied on GitHub
# firing a workflow_run webhook to matterwick, which would then read the
# server_versions input from the webhook payload. That path is broken --
# GitHub's workflow_run payload does not include workflow_dispatch inputs,
# so matterwick never received server_versions and never dispatched
# compatibility-matrix-testing.yml.
#
# New design: POST directly to matterwick's /cmt_dispatch endpoint with
# everything it needs (server_versions, run_id, sha, ref, repo, owner).
# Matterwick returns 202 immediately and provisions instances + dispatches
# compatibility-matrix-testing.yml asynchronously.
#
# Usage: Go to Actions -> CMT Provisioner -> Run workflow
# server_versions: comma-separated Mattermost server versions
# Example: "v11.1.0, v11.2.0, v12.0.0"

Expand All @@ -17,13 +27,48 @@ on:
type: string

jobs:
notify:
trigger-matterwick:
runs-on: ubuntu-22.04
steps:
- name: Log CMT request
- name: Request CMT provisioning from matterwick
env:
MATTERWICK_URL: ${{ vars.MATTERWICK_URL }}
CMT_TRIGGER_TOKEN: ${{ secrets.MATTERWICK_CMT_TRIGGER_SECRET }}
SERVER_VERSIONS: ${{ inputs.server_versions }}
REPO: ${{ github.event.repository.name }}
OWNER: ${{ github.repository_owner }}
SHA: ${{ github.sha }}
REF: ${{ github.ref_name }}
RUN_ID: ${{ github.run_id }}
run: |
echo "CMT Provisioner triggered"
echo "Server versions: ${SERVER_VERSIONS}"
echo "Matterwick will provision cloud instances and dispatch compatibility-matrix-testing.yml"
if [ -z "${MATTERWICK_URL}" ]; then
echo "ERROR: vars.MATTERWICK_URL is not set on this repository" >&2
exit 1
fi
if [ -z "${CMT_TRIGGER_TOKEN}" ]; then
echo "ERROR: secrets.MATTERWICK_CMT_TRIGGER_SECRET is not set on this repository" >&2
exit 1
fi

payload="$(jq -nc \
--arg owner "${OWNER}" \
--arg repo "${REPO}" \
--arg sha "${SHA}" \
--arg ref "${REF}" \
--argjson run_id ${RUN_ID} \
--arg versions "${SERVER_VERSIONS}" \
'{owner:$owner, repo:$repo, sha:$sha, ref:$ref, run_id:$run_id, server_versions:$versions}')"

echo "Requesting CMT provisioning for server versions: ${SERVER_VERSIONS}"

curl -sS -X POST "${MATTERWICK_URL}/cmt_dispatch" \
-H "Content-Type: application/json" \
-H "X-Trigger-Token: ${CMT_TRIGGER_TOKEN}" \
--data-binary "${payload}" \
--fail-with-body \
--retry 3 --retry-delay 5 --retry-connrefused \
--connect-timeout 10 --max-time 30

echo "matterwick accepted the CMT dispatch request."
echo "Provisioning will run asynchronously (~30 min) and then"
echo "compatibility-matrix-testing.yml will be dispatched automatically."
Loading