new helm oci step #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ################################################################################ | |
| # This file is AUTOGENERATED with <https://github.com/sapcc/go-makefile-maker> # | |
| # Edit Makefile.maker.yaml instead. # | |
| ################################################################################ | |
| # SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company | |
| # SPDX-License-Identifier: Apache-2.0 | |
| name: Helm OCI Package GHCR | |
| "on": | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - '*' | |
| workflow_dispatch: {} | |
| permissions: | |
| contents: read | |
| packages: write | |
| jobs: | |
| build-and-push-helm-package: | |
| name: Build and publish Helm Chart OCI | |
| runs-on: large_runner_16core_64gb | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| - name: Install Helm | |
| uses: azure/setup-helm@v4.3.1 | |
| - name: Lint Helm Chart | |
| run: helm lint charts/openstack-hypervisor-operator | |
| - name: Package Helm Chart | |
| run: | | |
| # try to detect a version from the git tags, only if the tag is exactly on the commit | |
| APP_VERSION=$(git describe --tags --exact-match ${{ github.sha }} 2>/dev/null || echo "") | |
| if [ -n "$APP_VERSION" ]; then | |
| VERSION=$(echo -n "$APP_VERSION" | sed -E 's/^v//') | |
| fi | |
| # use the git sha as app-version, if no version could be detected from the tags | |
| if [ -z "$APP_VERSION" ]; then | |
| APP_VERSION=$(echo -n "sha-${{ github.sha }}") | |
| fi | |
| # use the git sha as helm version suffix, version is semver | |
| if [ -z "$VERSION" ] && [ -n "$APP_VERSION" ]; then | |
| VERSION="$(helm show chart charts/openstack-hypervisor-operator | grep -E "^version:" | awk '{print $2}' )+${APP_VERSION:0:11}" | |
| fi | |
| HELM_ARGS=--dependency-update | |
| if [ -n "$APP_VERSION" ]; then | |
| HELM_ARGS="$HELM_ARGS --app-version $APP_VERSION" | |
| fi | |
| if [ -n "$VERSION" ]; then | |
| HELM_ARGS="$HELM_ARGS --version $VERSION" | |
| fi | |
| echo "Running helm package with $HELM_ARGS" | |
| helm package charts/openstack-hypervisor-operator --destination ./chart $HELM_ARGS | |
| - name: Log in to the Container registry | |
| uses: docker/login-action@v4 | |
| with: | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| - name: Push Helm Chart to ghcr.io | |
| run: helm push ./chart/*.tgz oci://ghcr.io/${{ github.repository_owner }}/charts |