A reusable GitHub Actions workflow that installs Magento (Mage-OS) and runs browser-based End-to-End (E2E) tests against a real storefront using Playwright or an equivalent E2E runner.
See the e2e.yaml
| Input | Description | Required | Default |
|---|---|---|---|
| matrix | JSON string of version matrix for Magento | true | NULL |
| fail-fast | Same as Github's fail-fast | false | true |
| package_name | The name of the package | true | NULL |
| source_folder | The source folder of the package | false | $GITHUB_WORKSPACE |
| magento_directory | The folder where Magento will be installed | false | ../magento2 |
| magento_repository | Where to install Magento from | false | https://mirror.mage-os.org/ |
| test_command | The e2e test command to run | false | "../../../vendor/bin/phpunit" |
| composer_cache_key | A key to version the composer cache. Can be incremented if you need to bust the cache. | false | "" |
| Input | Description | Required | Default |
|---|---|---|---|
| composer_auth | JSON string of composer credentials | false | NULL |
The
test_commandis executed from the Magento installation directory. E2E tests are expected to live underdev/tests/e2e.
The Magento matrix format outlined by the supported versions action.
The E2E test suite is executed in two phases:
The setup phase prepares shared browser state (e.g. authenticated sessions,
cookies, required entities). This phase is marked using the @setup tag.
npx playwright test --grep "@setup" --trace onThis step is required once per fresh environment.
Once setup has completed successfully, the full E2E test suite can be executed. Setup tests are skipped using --grep-invert.
npx playwright test --grep-invert "@setup" --trace onThis phase validates real user journeys against a live Magento storefront.
name: E2E Test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
compute_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: actions/checkout@v2
- uses: mage-os/github-actions/supported-version@main
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
e2e-workflow:
needs: compute_matrix
uses: mage-os/github-actions/.github/workflows/e2e.yaml@main
with:
package_name: my-vendor/package
matrix: ${{ needs.compute_matrix.outputs.matrix }}
test_command: |
npx playwright test --grep "@setup" --trace on
npx playwright test --grep-invert "@setup" --trace on
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}