Skip to content

Commit

Permalink
PMM-7 added reused get version job (#651)
Browse files Browse the repository at this point in the history
* PMM-7 added reused get version job

* PMM-7 fixed dependency

* PMM-7 fixed start version

* PMM-7 updated name and syntax

* PMM-7 fixed flat matrix

* PMM-7 fixed release range

* PMM-7 fixed release range

* PMM-7 just to trigger checks
  • Loading branch information
Vadim Yarosh authored Jul 6, 2023
1 parent 31c4e85 commit 13fa496
Show file tree
Hide file tree
Showing 4 changed files with 165 additions and 191 deletions.
76 changes: 20 additions & 56 deletions .github/workflows/pmm-upgrade-ui-tests-matrix-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,58 +24,22 @@ on:
- dev-latest

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 }}
version_matrix: ${{ steps.get-matrix.outputs.result }}
steps:
- 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 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
- name: Get versions matrix
id: get-matrix
shell: bash
run: |
array=$(wget -q https://registry.hub.docker.com/v2/repositories/percona/pmm-client/tags?page_size=50 -O - | jq -r .results[].name | grep -v latest | sort -V | grep -E '[[:digit:]]\.[[:digit:]]+\.[[:digit:]]' | tail -10)
jq -c -n '$ARGS.positional' --args ${array[@]}
echo "result=$(jq -c -n '$ARGS.positional' --args '2.11.0' ${array[@]})" >> "$GITHUB_OUTPUT"
get_versions:
name: Get versions
uses: ./.github/workflows/pmm-version-getter.yml
with:
repository: ${{ inputs.repository || 'dev-latest'}}
matrix_range: 10

configuration:
name: 'Configuration / Settings'
uses: ./.github/workflows/upgrade-tests-pipeline.yml
secrets: inherit
needs: push_versions
needs: get_versions
strategy:
fail-fast: false
matrix:
old_version: ${{ fromJSON(needs.push_versions.outputs.version_matrix) }}
old_version: ${{ fromJSON(needs.get_versions.outputs.version_matrix) }}
upgrade_type: ["UI way", "Docker way"]
with:
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch || 'main' }}
Expand All @@ -87,18 +51,18 @@ jobs:
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
services_list: ''
repository: ${{ inputs.repository || 'dev-latest'}}
version_string_from: ${{needs.push_versions.outputs.start_version}}
version_string_to: ${{needs.push_versions.outputs.finish_version}}
version_string_from: ${{needs.get_versions.outputs.start_version}}
version_string_to: ${{needs.get_versions.outputs.finish_version}}

rbac:
name: "RBAC / User Roles"
uses: ./.github/workflows/upgrade-tests-pipeline.yml
secrets: inherit
needs: push_versions
needs: get_versions
strategy:
fail-fast: false
matrix:
old_version: ${{ fromJSON(needs.push_versions.outputs.version_matrix) }}
old_version: ${{ fromJSON(needs.get_versions.outputs.version_matrix) }}
upgrade_type: ["UI way", "Docker way"]
with:
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch || 'main' }}
Expand All @@ -110,15 +74,15 @@ jobs:
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
services_list: '--addclient=ps,1 --addclient=pdpgsql,1'
repository: ${{ inputs.repository || 'dev-latest'}}
version_string_from: ${{needs.push_versions.outputs.start_version}}
version_string_to: ${{needs.push_versions.outputs.finish_version}}
version_string_from: ${{needs.get_versions.outputs.start_version}}
version_string_to: ${{needs.get_versions.outputs.finish_version}}

# TODO: add / in the job names for good sub-jobs grouping
# portal:
# name: Portal
# uses: ./.github/workflows/upgrade-tests-pipeline.yml
# secrets: inherit
# needs: push_versions
# needs: get_versions
# with:
# pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }}
# pre_upgrade_tests: '@pre-pmm-portal-upgrade'
Expand All @@ -129,14 +93,14 @@ jobs:
# 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}}
# version_string_from: ${{needs.get_versions.outputs.start_version}}
# version_string_to: ${{needs.get_versions.outputs.finish_version}}
#
# inventory:
# name: 'Inventory'
# uses: ./.github/workflows/upgrade-tests-pipeline.yml
# secrets: inherit
# needs: push_versions
# needs: get_versions
# with:
# pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch }}
# pre_upgrade_tests: '@inventory-pre-upgrade'
Expand All @@ -147,5 +111,5 @@ jobs:
# 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}}
# version_string_from: ${{needs.get_versions.outputs.start_version}}
# version_string_to: ${{needs.get_versions.outputs.finish_version}}
88 changes: 24 additions & 64 deletions .github/workflows/pmm-upgrade-ui-tests-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,130 +32,90 @@ on:
- dev-latest

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 }}
version_matrix: ${{ steps.get-matrix.outputs.result }}
steps:
- 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 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
### Debug only! remove with push!
echo "result=$release_latest" >> "$GITHUB_OUTPUT"
- name: Get versions matrix
id: get-matrix
shell: bash
run: |
array=$(wget -q https://registry.hub.docker.com/v2/repositories/percona/pmm-client/tags?page_size=50 -O - | jq -r .results[].name | grep -v latest | sort -V | grep -E '[[:digit:]]\.[[:digit:]]+\.[[:digit:]]' | tail -10)
jq -c -n '$ARGS.positional' --args ${array[@]}
echo "result=$(jq -c -n '$ARGS.positional' --args '2.11.0' ${array[@]})" >> "$GITHUB_OUTPUT"
get_versions:
name: Get versions
uses: ./.github/workflows/pmm-version-getter.yml
with:
repository: ${{ inputs.repository || 'dev-latest'}}
matrix_range: 10

configuration:
name: 'Configuration / Settings'
uses: ./.github/workflows/upgrade-tests-pipeline.yml
secrets: inherit
needs: push_versions
needs: get_versions
strategy:
fail-fast: false
matrix:
old_version: ${{ fromJSON(needs.push_versions.outputs.version_matrix) }}
upgrade_type: ["UI way", "Docker way"]
old_version: ${{ fromJSON(needs.get_versions.outputs.version_matrix) }}
with:
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch || 'main' }}
pre_upgrade_tests: '@config-pre-upgrade'
post_upgrade_tests: '@config-post-upgrade'
pmm_server_start_version: ${{ matrix.old_version }}
pmm_client_start_version: ${{ matrix.old_version }}
upgrade_type: ${{ matrix.upgrade_type }}
upgrade_type: ${{ inputs.upgrade_type || 'Docker way' }}
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
services_list: ''
repository: ${{ inputs.repository || 'dev-latest'}}
version_string_from: ${{needs.push_versions.outputs.start_version}}
version_string_to: ${{needs.push_versions.outputs.finish_version}}
version_string_from: ${{needs.get_versions.outputs.start_version}}
version_string_to: ${{needs.get_versions.outputs.finish_version}}

rbac:
name: "RBAC / User Roles"
uses: ./.github/workflows/upgrade-tests-pipeline.yml
secrets: inherit
needs: push_versions
needs: get_versions
strategy:
fail-fast: false
matrix:
old_version: ${{ fromJSON(needs.push_versions.outputs.version_matrix) }}
upgrade_type: ["UI way", "Docker way"]
old_version: ${{ fromJSON(needs.get_versions.outputs.version_matrix) }}
with:
pmm_ui_tests_branch: ${{ inputs.pmm_ui_tests_branch || 'main' }}
pre_upgrade_tests: '@rbac-pre-upgrade'
post_upgrade_tests: '@rbac-post-upgrade'
pmm_server_start_version: ${{ matrix.old_version }}
pmm_client_start_version: ${{ matrix.old_version }}
upgrade_type: ${{ matrix.upgrade_type }}
upgrade_type: ${{ inputs.upgrade_type || 'Docker way' }}
pmm_qa_branch: ${{ inputs.pmm_qa_branch || 'main' }}
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}}
version_string_from: ${{needs.get_versions.outputs.start_version}}
version_string_to: ${{needs.get_versions.outputs.finish_version}}

# TODO: add / in the job names for good sub-jobs grouping
# portal:
# name: Portal
# uses: ./.github/workflows/upgrade-tests-pipeline.yml
# secrets: inherit
# needs: push_versions
# needs: get_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 }}
# upgrade_type: ${{ inputs.upgrade_type || 'Docker way' }}
# 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}}
# version_string_from: ${{needs.get_versions.outputs.start_version}}
# version_string_to: ${{needs.get_versions.outputs.finish_version}}
#
# inventory:
# name: 'Inventory'
# uses: ./.github/workflows/upgrade-tests-pipeline.yml
# secrets: inherit
# needs: push_versions
# needs: get_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 }}
# upgrade_type: ${{ inputs.upgrade_type || 'Docker way' }}
# 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}}
# version_string_from: ${{needs.get_versions.outputs.start_version}}
# version_string_to: ${{needs.get_versions.outputs.finish_version}}
Loading

0 comments on commit 13fa496

Please sign in to comment.