From baab5e68add8b22c35fc55e40600ac13102e3723 Mon Sep 17 00:00:00 2001 From: Jaydip Gabani Date: Thu, 12 Sep 2024 00:46:42 +0000 Subject: [PATCH] automate fetching opa version Signed-off-by: Jaydip Gabani --- .github/workflows/patch-docs.yaml | 13 +++++++- .github/workflows/release-pr.yaml | 13 +++++++- Makefile | 6 ++++ website/docs/opa-versions.md | 51 +++++++++++++++++++------------ 4 files changed, 61 insertions(+), 22 deletions(-) diff --git a/.github/workflows/patch-docs.yaml b/.github/workflows/patch-docs.yaml index 8dbfca3ea0d..17815f853be 100644 --- a/.github/workflows/patch-docs.yaml +++ b/.github/workflows/patch-docs.yaml @@ -38,7 +38,18 @@ jobs: git checkout master - name: Create patch version docs - run: make patch-version-docs NEWVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.x TAG=v${TAG} OLDVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.$((PATCH_VERSION-1)) + run: | + tags=$(git tag -l --sort=-v:refname) + versions='' + for tag in $tags; do + if echo "$tag" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+$'; then + opa=$(curl https://raw.githubusercontent.com/open-policy-agent/gatekeeper/$tag/go.mod | grep /opa | awk '{print $2}') + if [ $opa ]; then + versions+="| \`$tag\` | \`$opa\` |\n" + fi + fi + done + make patch-version-docs NEWVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.x TAG=v${TAG} OLDVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.$((PATCH_VERSION-1)) OPA_VERSIONS="${versions}" - name: Create release pull request uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 diff --git a/.github/workflows/release-pr.yaml b/.github/workflows/release-pr.yaml index 9814e4dd5b4..e2194d4fc81 100644 --- a/.github/workflows/release-pr.yaml +++ b/.github/workflows/release-pr.yaml @@ -77,7 +77,18 @@ jobs: - run: make release-manifest promote-staging-manifest - if: github.event_name == 'push' - run: make version-docs NEWVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.x TAG=v${TAG} + run: | + tags=$(git tag -l --sort=-v:refname) + versions='' + for tag in $tags; do + if echo "$tag" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+$'; then + opa=$(curl https://raw.githubusercontent.com/open-policy-agent/gatekeeper/$tag/go.mod | grep /opa | awk '{print $2}') + if [ $opa ]; then + versions+="| \`$tag\` | \`$opa\` |\n" + fi + fi + done + make version-docs NEWVERSION=v${MAJOR_VERSION}.${MINOR_VERSION}.x TAG=v${TAG} OPA_VERSIONS="${versions}" - name: Create release pull request uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 diff --git a/Makefile b/Makefile index 1f2710743de..80f1e4801d6 100644 --- a/Makefile +++ b/Makefile @@ -489,6 +489,8 @@ release-manifest: # Tags a new version for docs .PHONY: version-docs version-docs: + @sed -i '10,$$c ${OPA_VERSIONS}' ./website/docs/opa-versions.md + @sed -i '/^$$/d' ./website/docs/opa-versions.md docker run \ -v $(shell pwd)/website:/website \ -w /website \ @@ -500,6 +502,10 @@ version-docs: .PHONY: patch-version-docs patch-version-docs: @sed -i 's/https:\/\/raw\.githubusercontent\.com\/open-policy-agent\/gatekeeper\/${OLDVERSION}\/deploy\/gatekeeper\.yaml.*/https:\/\/raw\.githubusercontent\.com\/open-policy-agent\/gatekeeper\/${TAG}\/deploy\/gatekeeper\.yaml/' ./website/versioned_docs/version-${NEWVERSION}/install.md + @sed -i '10,$$c ${OPA_VERSIONS}' ./website/docs/opa-versions.md + @sed -i '/^$$/d' ./website/docs/opa-versions.md + @sed -i '10,$$c ${OPA_VERSIONS}' ./website/versioned_docs/version-${NEWVERSION}/opa-versions.md + @sed -i '/^$$/d' ./website/versioned_docs/version-${NEWVERSION}/opa-versions.md promote-staging-manifest: @rm -rf deploy diff --git a/website/docs/opa-versions.md b/website/docs/opa-versions.md index 632101053af..642c4775fba 100644 --- a/website/docs/opa-versions.md +++ b/website/docs/opa-versions.md @@ -2,37 +2,48 @@ id: opa-versions title: OPA Versions --- - Gatekeeper depends on [Open Policy Agent](https://www.openpolicyagent.org/). To see which version of OPA is included in a particular Gatekeeper release, reference the table below. - | Gatekeeper Version | OPA Version | | ------------------ | ----------- | +| `v3.17.1` | `v0.67.0` | | `v3.17.0` | `v0.67.0` | | `v3.16.3` | `v0.64.1` | | `v3.16.2` | `v0.63.0` | -| `v3.16.0` | `v0.60.0` | +| `v3.16.0` | `v0.63.0` | | `v3.15.1` | `v0.60.0` | | `v3.15.0` | `v0.60.0` | +| `v3.14.2` | `v0.57.1` | +| `v3.14.1` | `v0.57.1` | | `v3.14.0` | `v0.57.1` | +| `v3.13.4` | `v0.54.0` | +| `v3.13.3` | `v0.54.0` | +| `v3.13.2` | `v0.54.0` | +| `v3.13.1` | `v0.54.0` | | `v3.13.0` | `v0.54.0` | | `v3.12.0` | `v0.49.2` | | `v3.11.1` | `v0.47.2` | | `v3.11.0` | `v0.47.2` | | `v3.10.0` | `v0.44.0` | -| `v3.9.2` | `v0.44.0` | -| `v3.9.1` | `v0.44.0` | -| `v3.9.0` | `v0.41.0` | -| `v3.8.1` | `v0.39.0` | -| `v3.8.0` | `v0.39.0` | -| `v3.7.2` | `v0.29.4` | -| `v3.7.1` | `v0.29.4` | -| `v3.7.0` | `v0.29.4` | -| `v3.6.0` | `v0.24.0` | -| `v3.5.2` | `v0.24.0` | -| `v3.5.1` | `v0.24.0` | -| `v3.5.0` | `v0.24.0` | -| `v3.4.1` | `v0.24.0` | -| `v3.4.0` | `v0.24.0` | -| `v3.3.0` | `v0.24.0` | -| `v3.2.0` | `v0.19.1` | -| `v3.1.0` | `v0.19.1` | \ No newline at end of file +| `v3.9.2` | `v0.44.0` | +| `v3.9.1` | `v0.44.0` | +| `v3.9.0` | `v0.41.0` | +| `v3.8.1` | `v0.39.0` | +| `v3.8.0` | `v0.39.0` | +| `v3.7.2` | `v0.29.4` | +| `v3.7.1` | `v0.29.4` | +| `v3.7.0` | `v0.29.4` | +| `v3.6.0` | `v0.29.4` | +| `v3.5.2` | `v0.24.0` | +| `v3.5.1` | `v0.24.0` | +| `v3.5.0` | `v0.24.0` | +| `v3.4.1` | `v0.24.0` | +| `v3.4.0` | `v0.24.0` | +| `v3.3.0` | `v0.24.0` | +| `v3.2.3` | `v0.21.0` | +| `v3.2.2` | `v0.21.0` | +| `v3.2.1` | `v0.21.0` | +| `v3.2.0` | `v0.21.0` | +| `v3.1.3` | `v0.21.0` | +| `v3.1.2` | `v0.21.0` | +| `v3.1.1` | `v0.21.0` | +| `v3.1.0` | `v0.21.0` |