PMM Upgrade UI Tests #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PMM Upgrade UI Tests | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
inputs: | |
pmm_ui_tests_branch: | |
description: 'pmm-ui-tests repository branch' | |
default: 'main' | |
required: true | |
pmm_qa_branch: | |
description: 'pmm-qa repository branch(for setup)' | |
default: 'main' | |
required: true | |
pmm_server_start_version: | |
description: 'PMM Server version to upgrade (latest|dev-latest|x.xx.x|x.xx.x-rc)' | |
default: 'latest' | |
required: true | |
pmm_client_start_version: | |
description: 'PMM Client version to upgrade from (dev-latest|pmm2-latest|pmm2-rc|x.xx.x)' | |
default: 'pmm2-latest' | |
required: true | |
upgrade_type: | |
description: 'Upgrade way:' | |
required: true | |
default: 'UI way' | |
type: choice | |
options: | |
- UI way | |
- Docker way | |
- Side container | |
repository: | |
description: 'Upgrade to:' | |
required: true | |
default: 'dev-latest' | |
type: choice | |
options: | |
- release | |
- release candidate | |
- dev-latest | |
workflow_call: | |
inputs: | |
pmm_ui_tests_branch: | |
description: 'pmm-ui-tests repository branch' | |
default: 'main' | |
type: string | |
required: true | |
pmm_qa_branch: | |
description: 'pmm-qa repository branch(for setup)' | |
default: 'main' | |
type: string | |
required: true | |
pmm_server_start_version: | |
description: 'PMM Server version to upgrade (latest|dev-latest|x.xx.x|x.xx.x-rc)' | |
default: 'latest' | |
type: string | |
required: true | |
pmm_client_start_version: | |
description: 'PMM Client version to upgrade from (dev-latest|pmm2-latest|pmm2-rc|x.xx.x)' | |
default: 'pmm2-latest' | |
type: string | |
required: true | |
upgrade_type: | |
description: 'Upgrade way:' | |
required: true | |
default: 'UI way' | |
type: string | |
repository: | |
description: 'Upgrade to:' | |
required: true | |
default: 'dev-latest' | |
type: string | |
jobs: | |
push_versions: | |
name: Push repo versions | |
runs-on: ubuntu-latest | |
timeout-minutes: 1 | |
outputs: | |
start_version: ${{ steps.get-start.outputs.result }} | |
finish_version: ${{ steps.get-finish.outputs.result }} | |
steps: | |
- name: Prevent upgrade to the same version | |
shell: bash | |
run: | | |
if [[ "${{ inputs.pmm_server_start_version }}" = "latest" && "${{ inputs.repository }}" = "release" ]]; then | |
echo "Upgrade to the same version is forbidden!" | |
exit 1 | |
fi | |
if [[ "${{ inputs.pmm_server_start_version }}" = "dev-latest" && "${{ inputs.repository }}" = "dev-latest" ]]; then | |
echo "Upgrade to the same version is forbidden!" | |
exit 1 | |
fi | |
- name: Discover latest versions | |
shell: bash | |
run: | | |
r_latest=$(wget -q https://registry.hub.docker.com/v2/repositories/percona/pmm-client/tags -O - | jq -r .results[].name | grep -v latest | sort -V | tail -n1) | |
rc_latest=$(wget -q "https://registry.hub.docker.com/v2/repositories/perconalab/pmm-client/tags?page_size=25&name=rc" -O - | jq -r .results[].name | grep 2.*.*-rc$ | sort -V | tail -n1) | |
rc_minor=$(echo $rc_latest | awk -F. '{print $2}') | |
d_latest="2.$((++rc_minor)).0" | |
echo "release_latest=$r_latest" >> $GITHUB_ENV | |
echo "rc_latest=$rc_latest" >> $GITHUB_ENV | |
echo "dev_latest=$d_latest" >> $GITHUB_ENV | |
- name: Get start version string | |
id: get-start | |
shell: bash | |
run: | | |
if [[ "${{ inputs.pmm_server_start_version }}" = "latest" ]]; then | |
echo "result=$release_latest" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "${{ inputs.pmm_server_start_version }}" = "dev-latest" ]]; then | |
echo "result=$dev_latest" >> "$GITHUB_OUTPUT" | |
fi | |
- name: Get finish version string | |
id: get-finish | |
shell: bash | |
run: | | |
if [[ "${{ inputs.repository }}" = "dev-latest" ]]; then | |
echo "result=$dev_latest" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "${{ inputs.repository }}" = "release candidate" ]]; then | |
echo "result=$rc_latest" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "${{ inputs.repository }}" = "release" ]]; then | |
echo "result=$release_latest" >> "$GITHUB_OUTPUT" | |
fi | |
configuration: | |
name: 'Configuration / Settings' | |
uses: ./.github/workflows/upgrade-tests-pipeline.yml | |
secrets: inherit | |
needs: push_versions | |
with: | |
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }} | |
pre_upgrade_tests: '@config-pre-upgrade' | |
post_upgrade_tests: '@config-post-upgrade' | |
pmm_server_start_version: ${{ inputs.pmm_server_start_version }} | |
pmm_client_start_version: ${{ inputs.pmm_client_start_version }} | |
upgrade_type: ${{ inputs.upgrade_type }} | |
pmm_qa_branch: ${{ inputs.pmm_qa_branch }} | |
services_list: '' | |
repository: ${{ inputs.repository }} | |
version_string_from: ${{needs.push_versions.outputs.start_version}} | |
version_string_to: ${{needs.push_versions.outputs.finish_version}} | |
rbac: | |
name: RBAC | |
uses: ./.github/workflows/upgrade-tests-pipeline.yml | |
secrets: inherit | |
needs: push_versions | |
with: | |
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }} | |
pre_upgrade_tests: '@rbac-pre-upgrade' | |
post_upgrade_tests: '@rbac-post-upgrade' | |
pmm_server_start_version: ${{ inputs.pmm_server_start_version }} | |
pmm_client_start_version: ${{ inputs.pmm_client_start_version }} | |
upgrade_type: ${{ inputs.upgrade_type }} | |
pmm_qa_branch: ${{ inputs.pmm_qa_branch }} | |
services_list: '--addclient=ps,1 --addclient=pdpgsql,1' | |
repository: ${{ inputs.repository }} | |
version_string_from: ${{needs.push_versions.outputs.start_version}} | |
version_string_to: ${{needs.push_versions.outputs.finish_version}} | |
# portal: | |
# name: Portal | |
# uses: ./.github/workflows/upgrade-tests-pipeline.yml | |
# secrets: inherit | |
# needs: push_versions | |
# with: | |
# pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }} | |
# pre_upgrade_tests: '@pre-pmm-portal-upgrade' | |
# post_upgrade_tests: '@post-pmm-portal-upgrade' | |
# pmm_server_start_version: ${{ inputs.pmm_server_start_version }} | |
# pmm_client_start_version: ${{ inputs.pmm_client_start_version }} | |
# upgrade_type: ${{ inputs.upgrade_type }} | |
# pmm_qa_branch: ${{ inputs.pmm_qa_branch }} | |
# services_list: '' | |
# repository: ${{ inputs.repository }} | |
# version_string_from: ${{needs.push_versions.outputs.start_version}} | |
# version_string_to: ${{needs.push_versions.outputs.finish_version}} | |
# | |
# inventory: | |
# name: 'Inventory' | |
# uses: ./.github/workflows/upgrade-tests-pipeline.yml | |
# secrets: inherit | |
# needs: push_versions | |
# with: | |
# pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }} | |
# pre_upgrade_tests: '@inventory-pre-upgrade' | |
# post_upgrade_tests: '@inventory-post-upgrade' | |
# pmm_server_start_version: ${{ inputs.pmm_server_start_version }} | |
# pmm_client_start_version: ${{ inputs.pmm_client_start_version }} | |
# upgrade_type: ${{ inputs.upgrade_type }} | |
# pmm_qa_branch: ${{ inputs.pmm_qa_branch }} | |
# services_list: '--addclient=modb,1' | |
# repository: ${{ inputs.repository }} | |
# version_string_from: ${{needs.push_versions.outputs.start_version}} | |
# version_string_to: ${{needs.push_versions.outputs.finish_version}} |