Files
mostlymatter/.github/workflows
Saturnino Abril a47269cfe2 MM-62954 E2E/Playwright shared library (#30177)
* feat: Add package.json for Playwright library with dependencies

* feat: Add explicit exports for test.config in playwright-lib package

* feat: Add initialization setup for Mattermost E2E testing with admin and user client

* fix: Update package dependencies and resolve TypeScript build errors

* feat: Update package exports for test.config to support both CommonJS and ESM

* playwright shared library

* add README, fix pipeline

* keep file structures, move report up to playwright

* minimize API, use the prerelease versions of client and types

* bump version

* update package*.json

* resolve merge conflict

* update depedencies and merge conflicts

* update readme and fix ci

* remove unnecessary export and list all external packages

* fix import for Client4
2025-04-01 08:52:56 +08:00
..
2024-12-18 08:22:53 -07:00

Background

This document aims to explain the bunch of server and webapp yaml files and their functionality.

The context behind this complexity is that we want new pushes to PR branches to cancel older in-progress and pending CI runs, but we don't want that to happen in master branch. Unfortunately, there is no config knob to control pending workflows and if you set a concurrency group, then pending workflows will always be canceled. Refer to https://github.com/orgs/community/discussions/5435 for discussion.

Therefore, we have a template yaml file which is actually the main CI code. That is then imported by {server|webapp}-ci-master.yml and {server|webapp}-ci-pr.yml. The -master.yml files don't have any concurrency limits, but -pr.yml files do.

Folder structure

server-ci-pr | ---server-ci-template | ---server-test-template (common code for postgres and mysql tests)

server-ci-master | ---server-ci-template | ---server-test-template (common code for postgres and mysql tests)

webapp-ci-pr | ---webapp-ci-template

webapp-ci-master | ---webapp-ci-template