Skip to content

Nightly E2E tests Matrix (remote PMM Server) #118

Nightly E2E tests Matrix (remote PMM Server)

Nightly E2E tests Matrix (remote PMM Server) #118

name: "Nightly E2E tests Matrix (remote PMM Server)"
# Triggered by Jenkins (pmm3-ui-tests-nightly-gha.groovy) once the PMM Server
# is up. Fans out one job per (client setup, tag) pair so each worker only
# runs the tests it has data for.
on:
workflow_dispatch:
inputs:
pmm_server_address:
description: "Hostname/IP of the externally-managed PMM Server (no scheme). Example: 12.34.56.78"
required: true
type: string
admin_password:
description: "Admin password configured on the remote PMM Server"
required: false
default: 'admin'
type: string
pmm_qa_branch:
description: "Branch for pmm-qa repository to checkout"
required: false
default: 'main'
type: string
pmm_client_version:
description: "PMM Client version (latest-tarball|pmm3-rc|x.xx.x|https://...)"
required: false
default: 'latest-tarball'
type: string
pmm_server_image:
description: "PMM Server docker container version (image-name:version-tag)"
required: false
default: 'perconalab/pmm-server:3-dev-latest'
type: string
launchable_confidence:
description: "Launchable subset confidence percentage"
required: false
default: '100%'
type: string
workflow_call:
inputs:
pmm_server_address:
required: true
type: string
admin_password:
required: false
default: 'admin'
type: string
pmm_qa_branch:
required: false
default: 'main'
type: string
pmm_client_version:
required: false
default: 'latest-tarball'
type: string
pmm_server_image:
required: false
default: 'perconalab/pmm-server:3-dev-latest'
type: string
launchable_confidence:
required: false
default: '100%'
type: string
secrets:
LAUNCHABLE_TOKEN:
required: false
GH_TOKEN:
required: false
jobs:
setup:
name: "setup / ${{ matrix.shard_name }}"
strategy:
fail-fast: true
matrix:
include:
- shard_name: external
setup_services: '--database external'
- shard_name: haproxy
setup_services: '--database haproxy'
- shard_name: ps-gr
setup_services: '--database ps,SETUP_TYPE=gr'
- shard_name: mysql
setup_services: '--database mysql'
- shard_name: ps-replication
setup_services: '--database ps,SETUP_TYPE=replication'
- shard_name: pxc
setup_services: '--database pxc'
- shard_name: ps-myrocks
setup_services: '--database ps,QUERY_SOURCE=slowlog,MY_ROCKS=true'
- shard_name: psmdb-pss
setup_services: '--database psmdb,SETUP_TYPE=pss'
- shard_name: pdpgsql
setup_services: '--database pdpgsql'
- shard_name: pgsql
setup_services: '--database pgsql'
- shard_name: pdpgsql-patroni
setup_services: '--database pdpgsql,SETUP_TYPE=patroni'
- shard_name: psmdb-sharded
setup_services: '--database psmdb,SETUP_TYPE=sharding'
- shard_name: extra-pxc
setup_services: '--database pxc'
- shard_name: valkey
setup_services: '--database valkey'
uses: ./.github/workflows/runner-e2e-tests-codeceptjs-remote-nightly-setup.yml
secrets:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
with:
pmm_server_address: ${{ inputs.pmm_server_address }}
admin_password: ${{ inputs.admin_password || 'admin' }}
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
pmm_client_version: ${{ inputs.pmm_client_version || 'latest-tarball' }}
pmm_server_image: ${{ inputs.pmm_server_image || 'perconalab/pmm-server:3-dev-latest' }}
setup_services: ${{ matrix.setup_services }}
shard_name: ${{ matrix.shard_name }}
expected_test_jobs: 2
test_execution:
name: "test execution / ${{ matrix.tags_for_tests }}"
strategy:
fail-fast: false
matrix:
include:
- tags_for_tests: '@qan|@menu|@valkey-nightly|@permissions-nightly|@pt-summary-nightly|@pbm-nightly'
- tags_for_tests: '@nightly'
uses: ./.github/workflows/runner-e2e-tests-codeceptjs-remote-nightly-tests.yml
secrets:
LAUNCHABLE_TOKEN: ${{ secrets.LAUNCHABLE_TOKEN }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
with:
pmm_server_address: ${{ inputs.pmm_server_address }}
admin_password: ${{ inputs.admin_password || 'admin' }}
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
pmm_client_version: ${{ inputs.pmm_client_version || 'latest-tarball' }}
pmm_server_image: ${{ inputs.pmm_server_image || 'perconalab/pmm-server:3-dev-latest' }}
tags_for_tests: ${{ matrix.tags_for_tests }}
expected_setup_jobs: 14
workers: 1
launchable_confidence: ${{ inputs.launchable_confidence || '100%' }}