From 07f4324a63c8016247511f3ea0781aed026d43cc Mon Sep 17 00:00:00 2001 From: anton Date: Tue, 2 Apr 2024 23:20:10 +0200 Subject: [PATCH] Added GitHub Actions workflow to package and publish helm charts --- .../package_and_push_helm_chart.yaml | 62 +++++++++++++++++++ charts/jupyter/Chart.yaml | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/package_and_push_helm_chart.yaml diff --git a/.github/workflows/package_and_push_helm_chart.yaml b/.github/workflows/package_and_push_helm_chart.yaml new file mode 100644 index 0000000..71b1d7d --- /dev/null +++ b/.github/workflows/package_and_push_helm_chart.yaml @@ -0,0 +1,62 @@ +name: Package and Push Helm Chart + +on: + push: + branches: + - dev + - release + - devops/FAIRSPC-57_github_actions + workflow_dispatch: + inputs: + version: + description: "Version of the Helm chart to push" + required: false + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Prepare version + run: | + VERSION=$(cat ./VERSION) + BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} + echo "Building images from the branch: $BRANCH" + if [ $BRANCH != "release" ]; then + VERSION=$VERSION-SNAPSHOT + fi + # override version of custom input is provided + if [[ -n "${{ github.event.inputs.version }}" ]]; then + VERSION=${{ github.event.inputs.version }} + fi + echo "Helm charts version to be deployed: $VERSION" + echo "VERSION=$VERSION" >> $GITHUB_ENV + + - name: Setup Helm + uses: azure/setup-helm@v4.1.0 + with: + version: ${{ vars.HELM_VERSION }} + + - name: Login with Helm + run: | + echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ${{ vars.HELM_REGISTRY }} --username ${{ github.repository_owner }} --password-stdin + + - name: Add/update Helm dependencies + run: | + helm repo add jupyterhub https://jupyterhub.github.io/helm-chart + helm dependency update "charts/jupyter" + + - name: Lint Helm chart + run: | + helm lint "charts/jupyter" + + - name: Package Helm chart + run: | + helm package "charts/jupyter" --version ${{ env.VERSION }} + + - name: Push Helm chart to repository + run: | + helm push "fairspace-jupyter-${{ env.VERSION }}.tgz" "oci://${{ vars.HELM_REGISTRY }}" diff --git a/charts/jupyter/Chart.yaml b/charts/jupyter/Chart.yaml index 5349077..a127eea 100644 --- a/charts/jupyter/Chart.yaml +++ b/charts/jupyter/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 appVersion: "1.0" description: Helm chart to install Jupyter along with a Fairspace workspace -name: jupyter +name: fairspace-jupyter version: 0.0.0-RELEASEVERSION dependencies: