From 99bb4da3d4a7b3dcbd4cfa45858f7bec367860d6 Mon Sep 17 00:00:00 2001 From: MuneebAijaz Date: Wed, 6 Nov 2024 09:14:57 +0500 Subject: [PATCH] test workflow for semver update --- .github/workflows/pull_request.yaml | 24 ++++++++++++++ .github/workflows/push.yaml | 1 + Makefile | 31 +++++++++++++------ .../kubernetes/chart/reloader/Chart.yaml | 4 +-- .../kubernetes/chart/reloader/values.yaml | 4 +-- .../kubernetes/manifests/deployment.yaml | 2 +- 6 files changed, 51 insertions(+), 15 deletions(-) diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index 0468d7f..c2a7b22 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -4,6 +4,7 @@ on: pull_request: branches: - master + - 'v**' paths: - '**' - '!.markdownlint.yaml' @@ -47,6 +48,29 @@ jobs: - name: Set up Helm uses: azure/setup-helm@v4 + - name: Add Stakater Helm Repo + run: | + helm repo add stakater https://stakater.github.io/stakater-charts + + - name: Get version for chart from helm repo + id: chart_eval + run: | + current_chart_version=$(helm search repo stakater/reloader | tail -n 1 | awk '{print $2}') + echo "CURRENT_CHART_VERSION=$(echo ${current_chart_version})" >> $GITHUB_OUTPUT + + - name: Get Updated Chart version from Chart.yaml + uses: mikefarah/yq@master + id: new_chart_version + with: + cmd: yq e '.version' deployments/kubernetes/chart/reloader/Chart.yaml + + - name: Check Version + uses: aleoyakas/check-semver-increased-action@v1 + id: check-version + with: + current-version: ${{ steps.new_chart_version.outputs.result }} + previous-version: ${{ steps.chart_eval.outputs.CURRENT_CHART_VERSION }} + - name: Helm chart unit tests uses: d3adb5/helm-unittest-action@v2 with: diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index b628c66..b8ae43d 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -6,6 +6,7 @@ on: - closed branches: - master + - 'v**' env: DOCKER_FILE_PATH: Dockerfile diff --git a/Makefile b/Makefile index f66ea92..fb5dd92 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,7 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize-$(KUSTOMIZE_VERSION) CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen-$(CONTROLLER_TOOLS_VERSION) ENVTEST ?= $(LOCALBIN)/setup-envtest-$(ENVTEST_VERSION) GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION) +YQ ?= $(LOCALBIN)/yq ## Tool Versions KUSTOMIZE_VERSION ?= v5.3.0 @@ -42,6 +43,22 @@ CONTROLLER_TOOLS_VERSION ?= v0.14.0 ENVTEST_VERSION ?= release-0.17 GOLANGCI_LINT_VERSION ?= v1.57.2 +YQ_VERSION ?= v4.27.5 +YQ_DOWNLOAD_URL = "https://github.com/mikefarah/yq/releases/download/$(YQ_VERSION)/yq_$(OS)_$(ARCH)" + + +.PHONY: yq +yq: $(YQ) ## Download YQ locally if needed +$(YQ): + @test -d $(LOCALBIN) || mkdir -p $(LOCALBIN) + @curl --retry 3 -fsSL $(YQ_DOWNLOAD_URL) -o $(YQ) || { \ + echo "Failed to download yq from $(YQ_DOWNLOAD_URL). Please check the URL and your network connection."; \ + exit 1; \ + } + @chmod +x $(YQ) + @echo "yq downloaded successfully to $(YQ)." + + .PHONY: kustomize kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary. $(KUSTOMIZE): $(LOCALBIN) @@ -136,6 +153,10 @@ deploy: binary-image push apply k8s-manifests: $(KUSTOMIZE) ## Generate k8s manifests using Kustomize from 'manifests' folder $(KUSTOMIZE) build ./deployments/kubernetes/ -o ./deployments/kubernetes/reloader.yaml +.PHONY: update-manifests-version +update-manifests-version: ## Generate k8s manifests using Kustomize from 'manifests' folder + sed -i 's/image: "ghcr.io\/stakater\/reloader:latest"/image: \"ghcr.io\/stakater\/reloader:v$(VERSION)"/g' deployments/kubernetes/manifests/deployment.yaml + # Bump Chart bump-chart: sed -i "s/^version:.*/version: $(VERSION)/" deployments/kubernetes/chart/reloader/Chart.yaml @@ -154,13 +175,3 @@ yq-install: @curl -sL $(YQ_DOWNLOAD_URL) -o $(YQ_BIN) @chmod +x $(YQ_BIN) @echo "yq $(YQ_VERSION) installed at $(YQ_BIN)" - -remove-labels-annotations: yq-install - @for file in $$(find deployments/kubernetes/manifests -type f -name '*.yaml'); do \ - echo "Processing $$file"; \ - $(YQ_BIN) eval 'del(.metadata.labels, .metadata.annotations)' -i "$$file"; \ - done - $(YQ_BIN) eval 'del(.spec.template.metadata.labels)' -i deployments/kubernetes/manifests/deployment.yaml - $(YQ_BIN) eval 'del(.spec.selector.matchLabels)' -i deployments/kubernetes/manifests/deployment.yaml - $(YQ_BIN) eval '.spec.selector.matchLabels.app = "reloader-reloader"' -i deployments/kubernetes/manifests/deployment.yaml - $(YQ_BIN) eval '.spec.template.metadata.labels.app = "reloader-reloader"' -i deployments/kubernetes/manifests/deployment.yaml diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index 51141e5..41e4099 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -3,8 +3,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 1.0.122 -appVersion: v1.0.122 +version: 1.1.0 +appVersion: v1.1.0 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index b1df2f8..6789608 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -93,10 +93,10 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.0.121 + version: v1.1.0 image: name: ghcr.io/stakater/reloader - tag: v1.0.121 + tag: v1.1.0 pullPolicy: IfNotPresent # Support for extra environment variables. env: diff --git a/deployments/kubernetes/manifests/deployment.yaml b/deployments/kubernetes/manifests/deployment.yaml index 30b8dc2..fb80fa4 100644 --- a/deployments/kubernetes/manifests/deployment.yaml +++ b/deployments/kubernetes/manifests/deployment.yaml @@ -17,7 +17,7 @@ spec: app: reloader-reloader spec: containers: - - image: "ghcr.io/stakater/reloader:latest" + - image: "ghcr.io/stakater/reloader:v1.1.0" imagePullPolicy: IfNotPresent name: reloader-reloader env: