-
Notifications
You must be signed in to change notification settings - Fork 971
ci(e2e): CMT scheduling + macOS E2E stabilization + CI/security hardening #3829
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
yasserfaraazkhan
merged 41 commits into
master
from
fix/cmt-direct-dispatch-and-cleanup-endpoint
Jun 9, 2026
Merged
Changes from all commits
Commits
Show all changes
41 commits
Select commit
Hold shift + click to select a range
fe9514e
fix(cmt): POST directly to matterwick instead of relying on workflow_…
c41490b
fix(cmt): drop all GITHUB_TOKEN scopes for cmt-provisioner
0ce5d27
fix(cmt): quote ${RUN_ID} expansion in jq invocation
e2e49b9
fix(e2e): drop push trigger from e2e-nightly-trigger.yml
cd36811
fix(e2e): fix macOS e2e failures from crash dialogs and teardown
yasserfaraazkhan ddcc6c0
fix(e2e): add blank line before comment to satisfy eslint lines-aroun…
yasserfaraazkhan 8298749
fix(e2e): use execFileSync instead of execSync, fix misleading comment
yasserfaraazkhan a926985
fix(e2e): unblock macOS tests and report per-OS results
yasserfaraazkhan 0b1facd
fix(ci): pin policy-tests-windows to windows-2022 + add intercom tests
yasserfaraazkhan bb174ef
fix(e2e): address remaining macOS/Linux/Windows failures
yasserfaraazkhan e7e0dc9
fix(e2e): split inline try/catch onto multiple lines for eslint
yasserfaraazkhan b3d7682
fix(e2e): address CI failures across Linux, macOS, and Windows
yasserfaraazkhan de6d112
fix tests
yasserfaraazkhan 7508c9f
Merge remote-tracking branch 'origin/master' into fix/cmt-direct-disp…
yasserfaraazkhan 090b52d
fix(e2e): fix bad_servers expired-cert reload and copy_link contextmenu
yasserfaraazkhan 25e40fc
fix(e2e): fix Windows CI failures for deeplink, fullscreen, minimize,…
yasserfaraazkhan 47fe037
fix(e2e): fix ESLint lines-around-comment and no-multiple-empty-lines…
yasserfaraazkhan 2cb6e9c
fix(e2e): add blank line before comment in deeplink test (ESLint)
yasserfaraazkhan 45c8a99
fix(ci): show ran/passed/failed in status checks, drop skipped count
yasserfaraazkhan 2561cd3
fix(test): add missing on mock to MainWindow in popoutManager unit test
yasserfaraazkhan 4d8521e
fix: address CodeRabbit inline review findings
yasserfaraazkhan 8c410ed
revert: restore hardcoded S3 bucket name and URL in e2e workflow
yasserfaraazkhan 8b865eb
test(popoutManager): add unit tests for registerMainWindowCloseHandle…
yasserfaraazkhan 9d891fb
Desktop qa agent (#3834)
yasserfaraazkhan 4d077d0
qa: fix intercom.test.js electron mock — app.once is not a function
cursoragent 4bfe9d0
qa: add QA report for PR #3829
cursoragent 912ee16
ci(e2e): scheduled CMT trigger + drop in-workflow cleanup call
yasserfaraazkhan 52a3f0c
ci(e2e): harden Actions permissions + make electron install resilient
yasserfaraazkhan 4b6764e
test: mock electron in unit suites that import it (fix flaky CI failure)
yasserfaraazkhan f46c763
chore: remove accidentally committed qa-report.md
yasserfaraazkhan cd735c8
revert(e2e): remove Cursor-automation PR server-URL feature
yasserfaraazkhan 5cde967
revert(e2e): remove Cursor-automation logic (workflows, setup, helper…
yasserfaraazkhan 4a44c88
docs(e2e): drop redundant AGENTS.md note; leave docs unchanged
yasserfaraazkhan 40bbaaa
docs(cmt): correct stale cmt_run_id input description
yasserfaraazkhan 1ddad60
Merge remote-tracking branch 'origin/master' into fix/cmt-direct-disp…
yasserfaraazkhan 473fdf3
fix(e2e): address review — drop popout-close change, gate E2E readiness
yasserfaraazkhan 155039f
fix(e2e): fix Linux/macOS/Windows E2E failures (test fixes)
yasserfaraazkhan 986d7e8
revert(test): drop electron mocks from UserActivityMonitor/diagnostic…
yasserfaraazkhan 78fbc91
CMT Provisioner: trigger on release-v* branches instead of monthly sc…
yasserfaraazkhan b05c0ef
CMT: remove dead cmt_run_id input; add concurrency to avoid overlappi…
yasserfaraazkhan 549b355
Merge remote-tracking branch 'origin/master' into fix/cmt-direct-disp…
yasserfaraazkhan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,29 +1,44 @@ | ||
| 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. | ||
| # Lightweight trigger workflow for Compatibility Matrix Testing (CMT). | ||
| # | ||
| # 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" | ||
| # Matterwick listens for this workflow's workflow_run:requested event, then provisions one | ||
| # Mattermost cloud instance per version in its hardcoded CMT version set (Matterwick's | ||
| # CMTServerVersions config / CMTVersions, e.g. the active ESR plus the current feature | ||
| # release) and dispatches compatibility-matrix-testing.yml with the CMT_MATRIX input. | ||
| # When compatibility-matrix-testing.yml completes, Matterwick destroys the provisioned | ||
| # instances (cleanup is keyed off the completed workflow_run, matched by commit SHA). | ||
| # | ||
| # The server-version set lives in Matterwick config (managed via gitops), so this workflow | ||
| # takes no inputs. Run it manually from the Actions tab, or let it fire automatically on | ||
| # release branches (below). | ||
| # | ||
| # NOTE (intentional duplicate coverage): a release-v* push ALSO triggers Matterwick's normal | ||
| # release E2E flow (whole suite against the single latest server version). CMT additionally | ||
| # runs the whole suite against its multi-version matrix, whose set includes the latest server. | ||
| # So on a release push the latest server version gets the suite run twice (once by the normal | ||
| # release flow, once by the CMT latest-version leg). This is expected and accepted. | ||
|
|
||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| server_versions: | ||
| description: "Comma-separated Mattermost server versions (e.g. v11.1.0, v11.2.0)" | ||
| required: true | ||
| type: string | ||
| # Run CMT when a release branch is cut and on every subsequent push to it. The first push | ||
| # that creates release-v* is the "cut"; later pushes to it re-run CMT. | ||
| push: | ||
| branches: | ||
| - "release-v*" | ||
| # Manual runs from the Actions tab (against any branch). | ||
| workflow_dispatch: {} | ||
|
|
||
| # This workflow does not use GITHUB_TOKEN. Its only purpose is to emit a workflow_run event | ||
| # that Matterwick reacts to; it does not check out the repo or call the GitHub API. Drop all | ||
| # GITHUB_TOKEN scopes so the runner-issued token cannot modify the repo if a step is added later. | ||
| permissions: {} | ||
|
|
||
| jobs: | ||
| notify: | ||
| signal: | ||
| runs-on: ubuntu-22.04 | ||
| steps: | ||
| - name: Log CMT request | ||
| env: | ||
| SERVER_VERSIONS: ${{ inputs.server_versions }} | ||
| - name: Signal Matterwick to provision CMT servers | ||
| run: | | ||
| echo "CMT Provisioner triggered" | ||
| echo "Server versions: ${SERVER_VERSIONS}" | ||
| echo "Matterwick will provision cloud instances and dispatch compatibility-matrix-testing.yml" | ||
| echo "CMT trigger started." | ||
| echo "Matterwick provisions one server per configured version and then" | ||
| echo "dispatches compatibility-matrix-testing.yml automatically." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.