mirror of
https://github.com/mattermost/mattermost.git
synced 2026-05-28 04:35:04 -04:00
164 lines
5.9 KiB
YAML
164 lines
5.9 KiB
YAML
---
|
|
name: E2E Tests (release cut)
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
branch:
|
|
type: string
|
|
required: true
|
|
description: "Release branch (e.g., 'release-11.4')"
|
|
commit_sha:
|
|
type: string
|
|
required: true
|
|
description: "Commit SHA to test"
|
|
server_image_tag:
|
|
type: string
|
|
required: true
|
|
description: "Docker image tag (e.g., '11.4.0', '11.4.0-rc3', or 'release-11.4')"
|
|
server_image_aliases:
|
|
type: string
|
|
required: false
|
|
description: "Comma-separated alias tags (e.g., 'release-11.4, release-11')"
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-24.04
|
|
outputs:
|
|
ref_branch: "${{ steps.check.outputs.ref_branch }}"
|
|
fips_supported: "${{ steps.check.outputs.fips_supported }}"
|
|
steps:
|
|
- name: ci/checkout-repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
ref: ${{ inputs.branch }}
|
|
fetch-depth: 50
|
|
- name: ci/validate-inputs
|
|
id: check
|
|
env:
|
|
BRANCH: ${{ inputs.branch }}
|
|
COMMIT_SHA: ${{ inputs.commit_sha }}
|
|
run: |
|
|
# Strip refs/heads/ prefix if present
|
|
BRANCH="${BRANCH#refs/heads/}"
|
|
|
|
# FIPS builds were introduced in release-11.0; skip FIPS tests for older branches.
|
|
if ! [[ "$BRANCH" =~ ^release-([0-9]+)\.[0-9]+$ ]]; then
|
|
echo "::error::Branch ${BRANCH} must be 'release-X.Y' format."
|
|
exit 1
|
|
elif ! git merge-base --is-ancestor "$COMMIT_SHA" HEAD; then
|
|
echo "::error::Commit ${COMMIT_SHA} is not on branch ${BRANCH}."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "${BASH_REMATCH[1]}" -ge 11 ]]; then
|
|
echo "fips_supported=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "fips_supported=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
echo "ref_branch=${BRANCH}" >> $GITHUB_OUTPUT
|
|
|
|
# Enterprise Edition
|
|
e2e-cypress:
|
|
needs: validate
|
|
permissions:
|
|
contents: read
|
|
statuses: write
|
|
id-token: write
|
|
pull-requests: write
|
|
uses: ./.github/workflows/e2e-tests-cypress.yml
|
|
with:
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
server_image_tag: ${{ inputs.server_image_tag }}
|
|
server_image_repo: mattermost
|
|
server_image_aliases: ${{ inputs.server_image_aliases }}
|
|
server: onprem
|
|
enable_reporting: true
|
|
report_type: RELEASE_CUT
|
|
ref_branch: ${{ needs.validate.outputs.ref_branch }}
|
|
secrets:
|
|
MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}"
|
|
AUTOMATION_DASHBOARD_URL: "${{ secrets.MM_E2E_AUTOMATION_DASHBOARD_URL }}"
|
|
AUTOMATION_DASHBOARD_TOKEN: "${{ secrets.MM_E2E_AUTOMATION_DASHBOARD_TOKEN }}"
|
|
PUSH_NOTIFICATION_SERVER: "${{ secrets.MM_E2E_PUSH_NOTIFICATION_SERVER }}"
|
|
REPORT_WEBHOOK_URL: "${{ secrets.MM_E2E_REPORT_WEBHOOK_URL }}"
|
|
CWS_URL: "${{ secrets.MM_E2E_CWS_URL }}"
|
|
CWS_EXTRA_HTTP_HEADERS: "${{ secrets.MM_E2E_CWS_EXTRA_HTTP_HEADERS }}"
|
|
|
|
e2e-playwright:
|
|
needs: validate
|
|
permissions:
|
|
contents: read
|
|
statuses: write
|
|
id-token: write
|
|
pull-requests: write
|
|
uses: ./.github/workflows/e2e-tests-playwright.yml
|
|
with:
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
server_image_tag: ${{ inputs.server_image_tag }}
|
|
server_image_repo: mattermost
|
|
server_image_aliases: ${{ inputs.server_image_aliases }}
|
|
server: onprem
|
|
enable_reporting: true
|
|
report_type: RELEASE_CUT
|
|
ref_branch: ${{ needs.validate.outputs.ref_branch }}
|
|
secrets:
|
|
MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}"
|
|
AWS_ACCESS_KEY_ID: "${{ secrets.CYPRESS_AWS_ACCESS_KEY_ID }}"
|
|
AWS_SECRET_ACCESS_KEY: "${{ secrets.CYPRESS_AWS_SECRET_ACCESS_KEY }}"
|
|
REPORT_WEBHOOK_URL: "${{ secrets.MM_E2E_REPORT_WEBHOOK_URL }}"
|
|
|
|
# Enterprise FIPS Edition
|
|
# FIPS builds were introduced in release-11.0; skip for older branches.
|
|
e2e-cypress-fips:
|
|
needs: validate
|
|
if: needs.validate.outputs.fips_supported == 'true'
|
|
permissions:
|
|
contents: read
|
|
statuses: write
|
|
id-token: write
|
|
pull-requests: write
|
|
uses: ./.github/workflows/e2e-tests-cypress.yml
|
|
with:
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
server_image_tag: ${{ inputs.server_image_tag }}
|
|
server_edition: fips
|
|
server_image_repo: mattermost
|
|
server_image_aliases: ${{ inputs.server_image_aliases }}
|
|
server: onprem
|
|
enable_reporting: true
|
|
report_type: RELEASE_CUT
|
|
ref_branch: ${{ needs.validate.outputs.ref_branch }}
|
|
secrets:
|
|
MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}"
|
|
AUTOMATION_DASHBOARD_URL: "${{ secrets.MM_E2E_AUTOMATION_DASHBOARD_URL }}"
|
|
AUTOMATION_DASHBOARD_TOKEN: "${{ secrets.MM_E2E_AUTOMATION_DASHBOARD_TOKEN }}"
|
|
PUSH_NOTIFICATION_SERVER: "${{ secrets.MM_E2E_PUSH_NOTIFICATION_SERVER }}"
|
|
REPORT_WEBHOOK_URL: "${{ secrets.MM_E2E_REPORT_WEBHOOK_URL }}"
|
|
CWS_URL: "${{ secrets.MM_E2E_CWS_URL }}"
|
|
CWS_EXTRA_HTTP_HEADERS: "${{ secrets.MM_E2E_CWS_EXTRA_HTTP_HEADERS }}"
|
|
|
|
e2e-playwright-fips:
|
|
needs: validate
|
|
if: needs.validate.outputs.fips_supported == 'true'
|
|
permissions:
|
|
contents: read
|
|
statuses: write
|
|
id-token: write
|
|
pull-requests: write
|
|
uses: ./.github/workflows/e2e-tests-playwright.yml
|
|
with:
|
|
commit_sha: ${{ inputs.commit_sha }}
|
|
server_image_tag: ${{ inputs.server_image_tag }}
|
|
server_edition: fips
|
|
server_image_repo: mattermost
|
|
server_image_aliases: ${{ inputs.server_image_aliases }}
|
|
server: onprem
|
|
enable_reporting: true
|
|
report_type: RELEASE_CUT
|
|
ref_branch: ${{ needs.validate.outputs.ref_branch }}
|
|
secrets:
|
|
MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}"
|
|
AWS_ACCESS_KEY_ID: "${{ secrets.CYPRESS_AWS_ACCESS_KEY_ID }}"
|
|
AWS_SECRET_ACCESS_KEY: "${{ secrets.CYPRESS_AWS_SECRET_ACCESS_KEY }}"
|
|
REPORT_WEBHOOK_URL: "${{ secrets.MM_E2E_REPORT_WEBHOOK_URL }}"
|