Skip to content

Commit

Permalink
[workflows] Github workflows for synchronize a release and upload chart
Browse files Browse the repository at this point in the history
* When a release is published, the `release-helm-chart` workflow will
  package the chart and upload it to the release page. Then sync with
the kuadrant repo.
* When a release is deleted, it will sync with the kuadrant repo
  • Loading branch information
didierofrivia committed Jun 24, 2024
1 parent 433bf86 commit 31fe5cd
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/delete-release-helm-chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Description: This workflow is used to communicate Kuadrant helm charts repo that a release has been deleted.

name: Delete Release Helm Chart
on:
release:
types:
- deleted
jobs:
delete_chart_release:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Parse Tag
run: |
tag=${{ github.event.release.tag_name || inputs.operatorTag }}
echo "OPERATOR_VERSION=${tag#v}" >> $GITHUB_ENV
- name: Sync deleted Helm Chart with repository
run: |
make helm-sync-package-deleted \
VERSION=${{env.OPERATOR_VERSION}} \
HELM_WORKFLOWS_TOKEN=${{ secrets.HELM_WORKFLOWS_TOKEN }}
52 changes: 52 additions & 0 deletions .github/workflows/release-helm-chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Description: This workflow is used to release the Helm chart to the GitHub repository. The chart manifests should be already
# built with the target `helm-build` and the manifests changes already committed to the tag to be released.

name: Release Helm Chart
on:
release:
types:
- published
workflow_dispatch:
inputs:
operatorTag:
description: Operator bundle version tag
default: v0.0.0
type: string
jobs:
chart_release:
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
fetch-depth: 0

- name: Package Helm Chart
run: |
make helm-package
- name: Parse Tag
run: |
tag=${{ github.event.release.tag_name || inputs.operatorTag }}
echo "OPERATOR_VERSION=${tag#v}" >> $GITHUB_ENV
- name: Upload package to GitHub Release
uses: svenstaro/upload-release-action@v2
id: upload-chart
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: limitador-operator-${{ env.OPERATOR_VERSION }}.tgz
asset_name: chart-limitador-operator-${{ env.OPERATOR_VERSION }}.tgz
tag: ${{ github.ref }}
overwrite: true

- name: Sync Helm Chart with repository
run: |
make helm-sync-package-created \
VERSION=${{env.OPERATOR_VERSION}} \
HELM_WORKFLOWS_TOKEN=${{ secrets.HELM_WORKFLOWS_TOKEN }} \
BROWSER_DOWNLOAD_URL=${{ steps.upload-chart.outputs.browser_download_url }}

0 comments on commit 31fe5cd

Please sign in to comment.