mirror of
https://github.com/mattermost/mattermost.git
synced 2026-02-03 20:40:00 -05:00
Some checks are pending
API / build (push) Waiting to run
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Blocked by required conditions
Web App CI / check-types (push) Blocked by required conditions
Web App CI / test (platform) (push) Blocked by required conditions
Web App CI / test (mattermost-redux) (push) Blocked by required conditions
Web App CI / test (channels shard 1/4) (push) Blocked by required conditions
Web App CI / test (channels shard 2/4) (push) Blocked by required conditions
Web App CI / test (channels shard 3/4) (push) Blocked by required conditions
Web App CI / test (channels shard 4/4) (push) Blocked by required conditions
Web App CI / upload-coverage (push) Blocked by required conditions
Web App CI / build (push) Blocked by required conditions
* feat: run e2e full tests after successful smoke tests both in cypress and playwright * fix lint check on jsdoc req in playwright test * update smoke test filter * update test filter for cypress tests * update docker services, fix branch convention and rearrange secrets * update e2e-test workflow docs * reorganized * fix lint * fix playwright template * fix results assertion * add retest, e2e-test-verified, gh comments of failed tests, path filters, run e2e-tests check first and demote unstable tests * run using master image for e2e-only changes, add ts/js actions for cypress and playwright calculations, add verified by label --------- Co-authored-by: Mattermost Build <build@mattermost.com>
120 lines
4.5 KiB
YAML
120 lines
4.5 KiB
YAML
---
|
|
name: E2E Tests - Playwright
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
commit_sha:
|
|
type: string
|
|
required: true
|
|
enable_reporting:
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
server:
|
|
type: string
|
|
required: false
|
|
default: onprem
|
|
report_type:
|
|
type: string
|
|
required: false
|
|
pr_number:
|
|
type: string
|
|
required: false
|
|
server_image_tag:
|
|
type: string
|
|
required: false
|
|
description: "Server image tag (e.g., master or short SHA)"
|
|
secrets:
|
|
MM_LICENSE:
|
|
required: false
|
|
REPORT_WEBHOOK_URL:
|
|
required: false
|
|
AWS_ACCESS_KEY_ID:
|
|
required: true
|
|
AWS_SECRET_ACCESS_KEY:
|
|
required: true
|
|
|
|
jobs:
|
|
generate-build-variables:
|
|
runs-on: ubuntu-24.04
|
|
outputs:
|
|
branch: "${{ steps.build-vars.outputs.branch }}"
|
|
build_id: "${{ steps.build-vars.outputs.build_id }}"
|
|
server_image_tag: "${{ steps.build-vars.outputs.server_image_tag }}"
|
|
steps:
|
|
- name: ci/generate-build-variables
|
|
id: build-vars
|
|
env:
|
|
COMMIT_SHA: ${{ inputs.commit_sha }}
|
|
PR_NUMBER: ${{ inputs.pr_number }}
|
|
INPUT_SERVER_IMAGE_TAG: ${{ inputs.server_image_tag }}
|
|
RUN_ID: ${{ github.run_id }}
|
|
RUN_ATTEMPT: ${{ github.run_attempt }}
|
|
run: |
|
|
# Use provided server_image_tag or derive from commit SHA
|
|
if [ -n "$INPUT_SERVER_IMAGE_TAG" ]; then
|
|
SERVER_IMAGE_TAG="$INPUT_SERVER_IMAGE_TAG"
|
|
else
|
|
SERVER_IMAGE_TAG="${COMMIT_SHA::7}"
|
|
fi
|
|
echo "server_image_tag=${SERVER_IMAGE_TAG}" >> $GITHUB_OUTPUT
|
|
|
|
# Generate branch name
|
|
if [ -n "$PR_NUMBER" ]; then
|
|
echo "branch=server-pr-${PR_NUMBER}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "branch=server-commit-${SERVER_IMAGE_TAG}" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
# Generate build ID
|
|
echo "build_id=${RUN_ID}_${RUN_ATTEMPT}-${SERVER_IMAGE_TAG}-playwright-onprem-ent" >> $GITHUB_OUTPUT
|
|
|
|
playwright-smoke:
|
|
needs:
|
|
- generate-build-variables
|
|
uses: ./.github/workflows/e2e-tests-playwright-template.yml
|
|
with:
|
|
test_type: smoke
|
|
test_filter: "--grep @smoke"
|
|
timeout_minutes: 30
|
|
enabled_docker_services: "postgres inbucket"
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
branch: ${{ needs.generate-build-variables.outputs.branch }}
|
|
build_id: ${{ needs.generate-build-variables.outputs.build_id }}
|
|
server_image_tag: ${{ needs.generate-build-variables.outputs.server_image_tag }}
|
|
server: ${{ inputs.server }}
|
|
context_name: "E2E Tests / playwright-smoke"
|
|
pr_number: ${{ inputs.pr_number }}
|
|
secrets:
|
|
MM_LICENSE: ${{ secrets.MM_LICENSE }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
|
|
# ════════════════════════════════════════════════════════════════════════════
|
|
# FULL TESTS (only if smoke passes and pr_number is provided)
|
|
# ════════════════════════════════════════════════════════════════════════════
|
|
playwright-full:
|
|
needs:
|
|
- playwright-smoke
|
|
- generate-build-variables
|
|
if: needs.playwright-smoke.outputs.failed == '0' && inputs.pr_number != ''
|
|
uses: ./.github/workflows/e2e-tests-playwright-template.yml
|
|
with:
|
|
test_type: full
|
|
test_filter: '--grep-invert "@smoke|@visual"'
|
|
timeout_minutes: 120
|
|
enabled_docker_services: "postgres inbucket minio openldap elasticsearch keycloak"
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
branch: ${{ needs.generate-build-variables.outputs.branch }}
|
|
build_id: ${{ needs.generate-build-variables.outputs.build_id }}
|
|
server_image_tag: ${{ needs.generate-build-variables.outputs.server_image_tag }}
|
|
server: ${{ inputs.server }}
|
|
enable_reporting: ${{ inputs.enable_reporting }}
|
|
report_type: ${{ inputs.report_type }}
|
|
pr_number: ${{ inputs.pr_number }}
|
|
context_name: "E2E Tests / playwright-full"
|
|
secrets:
|
|
MM_LICENSE: ${{ secrets.MM_LICENSE }}
|
|
REPORT_WEBHOOK_URL: ${{ secrets.REPORT_WEBHOOK_URL }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|