diff --git a/.github/workflows/push-helm-chart.yaml b/.github/workflows/push-helm-chart.yaml index e6d8c5d..60e2333 100644 --- a/.github/workflows/push-helm-chart.yaml +++ b/.github/workflows/push-helm-chart.yaml @@ -1,6 +1,6 @@ name: Push Helm Chart -# TODO: fix: workflows have a problem where only code owners' PRs get the actions running +# TODO: fix: workflows have a problem where only code owners' PRs get the actions running on: pull_request: @@ -104,6 +104,13 @@ jobs: commit_username: stakater-user commit_email: stakater@gmail.com + - name: Push new chart tag + uses: anothrNick/github-tag-action@1.71.0 + env: + GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} + WITH_V: false + CUSTOM_TAG: chart-v${{ steps.new_chart_version.outputs.result }} + - name: Notify Slack uses: 8398a7/action-slack@v3 if: always() # Pick up events even if the job fails or is canceled. diff --git a/.github/workflows/release-helm-chart.yaml b/.github/workflows/release-helm-chart.yaml new file mode 100644 index 0000000..8ce01c8 --- /dev/null +++ b/.github/workflows/release-helm-chart.yaml @@ -0,0 +1,41 @@ +name: Release Helm chart + +on: + push: + tags: + - "chart-v*" + tags-ignore: + - "v*" + +permissions: + contents: write + +jobs: + release-helm-chart: + name: Release Helm chart + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Create release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref }} + run: | + gh release create "$tag" \ + --repo="$GITHUB_REPOSITORY" \ + --title="Helm chart ${tag#chart-}" \ + --generate-notes + + - name: Notify Slack + uses: 8398a7/action-slack@v3 + if: always() + with: + status: ${{ job.status }} + fields: repo,author,action,eventName,ref,workflow + env: + SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c890016..96edbef 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,8 +1,11 @@ name: Release Go project on: - release: - types: [published] + push: + tags: + - "v*" + tags-ignore: + - "chart-v*" env: DOCKER_FILE_PATH: Dockerfile @@ -12,7 +15,7 @@ env: REGISTRY: ghcr.io jobs: - build: + release: permissions: contents: read @@ -193,22 +196,6 @@ jobs: ## Add steps to generate required artifacts for a release here(helm chart, operator manifest etc.) ############################## - # # Generate tag for operator without "v" - # - name: Generate Operator Tag - # id: generate_operator_tag - # uses: anothrNick/github-tag-action@1.70.0 - # env: - # GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} - # WITH_V: false - # DEFAULT_BUMP: patch - # DRY_RUN: true - - # # Update chart tag to the latest semver tag - # - name: Update Chart Version - # env: - # VERSION: ${{ steps.generate_operator_tag.outputs.RELEASE_VERSION }} - # run: make bump-chart - - name: Run GoReleaser uses: goreleaser/goreleaser-action@master with: diff --git a/.goreleaser.yml b/.goreleaser.yml index 8263637..08953b7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -18,10 +18,7 @@ snapshot: checksum: name_template: "{{ .ProjectName }}_{{ .Version }}_checksums.txt" changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' + # It will be generated manually as part of making a new GitHub release + disable: true env_files: github_token: /home/jenkins/.apitoken/hub diff --git a/Makefile b/Makefile index 5668d59..d8a3ec9 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,6 @@ 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): @@ -58,7 +57,6 @@ $(YQ): @chmod +x $(YQ) @echo "yq downloaded successfully to $(YQ)." - .PHONY: kustomize kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary. $(KUSTOMIZE): $(LOCALBIN) @@ -157,12 +155,6 @@ k8s-manifests: $(KUSTOMIZE) ## Generate k8s manifests using Kustomize from 'mani update-manifests-version: ## Generate k8s manifests using Kustomize from 'manifests' folder sed -i 's/image:.*/image: \"ghcr.io\/stakater\/reloader:v$(VERSION)"/g' deployments/kubernetes/manifests/deployment.yaml -# Bump Chart -bump-chart: - sed -i "s/^appVersion:.*/appVersion: v$(VERSION)/" deployments/kubernetes/chart/reloader/Chart.yaml - sed -i "s/tag:.*/tag: v$(VERSION)/" deployments/kubernetes/chart/reloader/values.yaml - sed -i "s/version:.*/version: v$(VERSION)/" deployments/kubernetes/chart/reloader/values.yaml - YQ_VERSION = v4.42.1 YQ_BIN = $(shell pwd)/yq CURRENT_ARCH := $(shell uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/') diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index 7bad405..ed354f0 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 2.0.0 -appVersion: v1.3.0 +version: 2.1.0 +appVersion: v1.4.0 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/README.md b/deployments/kubernetes/chart/reloader/README.md index b7573ea..6409375 100644 --- a/deployments/kubernetes/chart/reloader/README.md +++ b/deployments/kubernetes/chart/reloader/README.md @@ -158,4 +158,8 @@ _Helm chart versioning_: The Reloader Helm chart is maintained in this repositor Helm chart will be released to the chart registry whenever files in `deployments/kubernetes/chart/reloader/**` change on the main branch. -Helm Chart will be released by the maintainers, on labelling a PR with `release/helm-chart` and pre-maturely updating the `version` field in `Chart.yaml` file. +### To release the Helm chart + +1. Create a new branch and update the Helm chart `appVersion` and `version`, example pull-request: [PR-846](https://github.com/stakater/Reloader/pull/846) +1. Label the PR with `release/helm-chart` +1. After approval and just before squash, make sure the squash commit message represents all changes, because it will be used to autogenerate the changelog message diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index 7fe94a8..7ca6c7b 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -17,7 +17,7 @@ fullnameOverride: "" image: name: stakater/reloader repository: ghcr.io/stakater/reloader - tag: v1.3.0 + tag: v1.4.0 # digest: sha256:1234567 pullPolicy: IfNotPresent @@ -106,7 +106,7 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.3.0 + version: v1.4.0 # Support for extra environment variables. env: # Open supports Key value pair as environment variables.