From 3dd5b004a53c1a642d06d8a46a693e963a8cfb62 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 25 May 2026 12:13:05 +0300 Subject: [PATCH 1/3] Add a check between cr and release_versions images for release --- .github/workflows/reviewdog.yml | 61 +++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index bd27cd0bd..f15d1ffdf 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -104,6 +104,67 @@ jobs: make generate VERSION=main git diff --exit-code + deploy-cr-release-versions: + name: deploy/cr.yaml vs e2e-tests/release_versions + if: ${{ contains(github.base_ref, 'release-') }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Verify deploy/cr.yaml images match release_versions + run: | + set -euo pipefail + # shellcheck disable=SC1091 + source e2e-tests/release_versions + + registry="${REGISTRY_NAME:-docker.io}" + pg_ver=$(grep -E '^[[:space:]]*postgresVersion:' deploy/cr.yaml | head -1 | sed 's/.*postgresVersion:[[:space:]]*//') + if [ -z "$pg_ver" ]; then + echo "::error::postgresVersion not found in deploy/cr.yaml" + exit 1 + fi + + postgres_var="IMAGE_POSTGRESQL${pg_ver}" + pgbouncer_var="IMAGE_PGBOUNCER${pg_ver}" + backrest_var="IMAGE_BACKREST${pg_ver}" + for var in "$postgres_var" "$pgbouncer_var" "$backrest_var"; do + if [ -z "${!var:-}" ]; then + echo "::error::${var} is not defined in e2e-tests/release_versions" + exit 1 + fi + done + + expected_postgres="${registry}/${!postgres_var}" + expected_pgbouncer="${registry}/${!pgbouncer_var}" + expected_backrest="${registry}/${!backrest_var}" + expected_pmm="${registry}/${IMAGE_PMM3_CLIENT}" + expected_cr_version="${IMAGE_OPERATOR##*:}" + + spec_image=$(grep -E '^ image: ' deploy/cr.yaml | head -1 | awk '{print $2}') + pgbouncer_image=$(sed -n '/^ pgBouncer:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') + backrest_image=$(sed -n '/^ pgbackrest:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') + pmm_image=$(sed -n '/^ pmm:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') + cr_version=$(grep -E '^[[:space:]]*crVersion:' deploy/cr.yaml | head -1 | awk '{print $2}') + + failed=0 + check() { + local name="$1" actual="$2" expected="$3" + if [ "$actual" != "$expected" ]; then + echo "::error::${name}: deploy/cr.yaml has '${actual}', e2e-tests/release_versions expects '${expected}'" + failed=1 + fi + } + + check "spec.image (IMAGE_POSTGRESQL${pg_ver})" "$spec_image" "$expected_postgres" + check "proxy.pgBouncer.image (IMAGE_PGBOUNCER${pg_ver})" "$pgbouncer_image" "$expected_pgbouncer" + check "backups.pgbackrest.image (IMAGE_BACKREST${pg_ver})" "$backrest_image" "$expected_backrest" + check "pmm.image (IMAGE_PMM3_CLIENT)" "$pmm_image" "$expected_pmm" + check "spec.crVersion (IMAGE_OPERATOR tag)" "$cr_version" "$expected_cr_version" + + if [ "$failed" -ne 0 ]; then + exit 1 + fi + echo "deploy/cr.yaml images match e2e-tests/release_versions." + e2e-release-versions-images: name: e2e-tests release_versions image availability runs-on: ubuntu-latest From 2e2841a044481bb604a9b608be0e4b1164484419 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 8 Jun 2026 18:29:41 +0300 Subject: [PATCH 2/3] Use yq --- .github/workflows/reviewdog.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index f15d1ffdf..6cbc6d222 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -110,6 +110,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 + - uses: mikefarah/yq@v4 - name: Verify deploy/cr.yaml images match release_versions run: | set -euo pipefail @@ -117,9 +118,9 @@ jobs: source e2e-tests/release_versions registry="${REGISTRY_NAME:-docker.io}" - pg_ver=$(grep -E '^[[:space:]]*postgresVersion:' deploy/cr.yaml | head -1 | sed 's/.*postgresVersion:[[:space:]]*//') - if [ -z "$pg_ver" ]; then - echo "::error::postgresVersion not found in deploy/cr.yaml" + pg_ver=$(yq -r '.spec.postgresVersion' deploy/cr.yaml) + if [ -z "$pg_ver" ] || [ "$pg_ver" = "null" ]; then + echo "::error::spec.postgresVersion not found in deploy/cr.yaml" exit 1 fi @@ -139,15 +140,20 @@ jobs: expected_pmm="${registry}/${IMAGE_PMM3_CLIENT}" expected_cr_version="${IMAGE_OPERATOR##*:}" - spec_image=$(grep -E '^ image: ' deploy/cr.yaml | head -1 | awk '{print $2}') - pgbouncer_image=$(sed -n '/^ pgBouncer:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') - backrest_image=$(sed -n '/^ pgbackrest:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') - pmm_image=$(sed -n '/^ pmm:/,/^ image:/p' deploy/cr.yaml | grep -E '^ image: ' | head -1 | awk '{print $2}') - cr_version=$(grep -E '^[[:space:]]*crVersion:' deploy/cr.yaml | head -1 | awk '{print $2}') + spec_image=$(yq -r '.spec.image' deploy/cr.yaml) + pgbouncer_image=$(yq -r '.spec.proxy.pgBouncer.image' deploy/cr.yaml) + backrest_image=$(yq -r '.spec.backups.pgbackrest.image' deploy/cr.yaml) + pmm_image=$(yq -r '.spec.pmm.image' deploy/cr.yaml) + cr_version=$(yq -r '.spec.crVersion' deploy/cr.yaml) failed=0 check() { local name="$1" actual="$2" expected="$3" + if [ -z "$actual" ] || [ "$actual" = "null" ]; then + echo "::error::${name}: missing in deploy/cr.yaml" + failed=1 + return + fi if [ "$actual" != "$expected" ]; then echo "::error::${name}: deploy/cr.yaml has '${actual}', e2e-tests/release_versions expects '${expected}'" failed=1 @@ -155,9 +161,9 @@ jobs: } check "spec.image (IMAGE_POSTGRESQL${pg_ver})" "$spec_image" "$expected_postgres" - check "proxy.pgBouncer.image (IMAGE_PGBOUNCER${pg_ver})" "$pgbouncer_image" "$expected_pgbouncer" - check "backups.pgbackrest.image (IMAGE_BACKREST${pg_ver})" "$backrest_image" "$expected_backrest" - check "pmm.image (IMAGE_PMM3_CLIENT)" "$pmm_image" "$expected_pmm" + check "spec.proxy.pgBouncer.image (IMAGE_PGBOUNCER${pg_ver})" "$pgbouncer_image" "$expected_pgbouncer" + check "spec.backups.pgbackrest.image (IMAGE_BACKREST${pg_ver})" "$backrest_image" "$expected_backrest" + check "spec.pmm.image (IMAGE_PMM3_CLIENT)" "$pmm_image" "$expected_pmm" check "spec.crVersion (IMAGE_OPERATOR tag)" "$cr_version" "$expected_cr_version" if [ "$failed" -ne 0 ]; then From 4635bd11c4517d84694dc8ecc047b7de42565ecf Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 8 Jun 2026 20:00:18 +0300 Subject: [PATCH 3/3] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/reviewdog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index b7cfe4aee..66f58a9a3 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -109,7 +109,7 @@ jobs: if: ${{ contains(github.base_ref, 'release-') }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: mikefarah/yq@v4 - name: Verify deploy/cr.yaml images match release_versions run: |