Fixed docker build and helm package workflows (invalid tagging) (#46)
* feat: update Helm and Docker workflows to extract chart name and version, and improve tagging logic * fix: add github-actions-ci branch to workflow triggers for Docker and Helm packaging * fix: add helm-package-push.yml to workflow paths for triggering on changes * fix: improve appVersion extraction in Docker workflow and add error handling * fix: enhance appVersion extraction with debugging output and error message * fix: improve error handling for appVersion extraction in Docker and Helm workflows * fix: simplify chart info extraction in Helm workflow and remove error handling * fix: update chart info extraction to use awk for improved parsing * fix: streamline chart info extraction in Helm workflow by removing unnecessary step and directly parsing values * fix: remove newline characters from chart version and name extraction in Helm workflow * Fix newline * Update helm-package-push.yml * Removed claude brainrot * Update helm-package-push.yml
This commit is contained in:
committed by
GitHub
parent
b42bfdffaa
commit
aaaf1d35d6
31
.github/workflows/docker-build-push.yml
vendored
31
.github/workflows/docker-build-push.yml
vendored
@@ -6,6 +6,7 @@ on:
|
||||
- main
|
||||
- beta
|
||||
- dev
|
||||
- github-actions-ci
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'helm/Chart.yaml'
|
||||
@@ -45,21 +46,29 @@ jobs:
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Extract appVersion from Chart.yaml
|
||||
id: chart_version
|
||||
- name: Extract appVersion from Chart.yaml and determine tags
|
||||
id: tags
|
||||
run: |
|
||||
APP_VERSION=$(grep '^appVersion:' helm/Chart.yaml | awk '{print $2}' | tr -d '"')
|
||||
echo "version=$APP_VERSION" >> $GITHUB_OUTPUT
|
||||
APP_VERSION=$(grep '^appVersion:' helm/Chart.yaml | awk '{print $2}' | tr -d '"' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||
|
||||
if [ -z "$APP_VERSION" ]; then
|
||||
echo "Error: Could not extract appVersion from Chart.yaml"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${{ github.ref_name }}" == "main" ]]; then
|
||||
TAGS="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${APP_VERSION},${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
|
||||
else
|
||||
TAGS="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${APP_VERSION}-${{ github.ref_name }}"
|
||||
fi
|
||||
|
||||
echo "tags=$TAGS" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Extract metadata (tags, labels)
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: |
|
||||
type=raw,value=${{ steps.chart_version.outputs.version }},enable={{is_default_branch}}
|
||||
type=raw,value=${{ steps.chart_version.outputs.version }}-${{ github.ref_name }},enable=${{ github.ref_name != 'main' }}
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
@@ -67,10 +76,12 @@ jobs:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
tags: ${{ steps.tags.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache
|
||||
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.meta.outputs.digest }}
|
||||
run: |
|
||||
echo "Image built and pushed with tags:"
|
||||
echo "${{ steps.tags.outputs.tags }}"
|
||||
|
||||
45
.github/workflows/helm-package-push.yml
vendored
45
.github/workflows/helm-package-push.yml
vendored
@@ -6,8 +6,10 @@ on:
|
||||
- main
|
||||
- beta
|
||||
- dev
|
||||
- github-actions-ci
|
||||
paths:
|
||||
- 'helm/**'
|
||||
- '.github/workflows/helm-package-push.yml'
|
||||
tags:
|
||||
- 'v*'
|
||||
release:
|
||||
@@ -39,37 +41,36 @@ jobs:
|
||||
run: |
|
||||
echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ghcr.io --username ${{ github.actor }} --password-stdin
|
||||
|
||||
- name: Extract version from Chart.yaml
|
||||
id: version
|
||||
run: |
|
||||
VERSION=$(grep '^version:' ./helm/Chart.yaml | awk '{print $2}' | tr -d '"')
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Package Helm chart
|
||||
- name: Set Helm chart version and package
|
||||
run: |
|
||||
CHART_NAME=$(grep '^name:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
BASE_VERSION=$(grep '^version:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
|
||||
if [[ "${{ github.ref_name }}" == "main" ]]; then
|
||||
CHART_VERSION="${BASE_VERSION}"
|
||||
else
|
||||
CHART_VERSION="${BASE_VERSION}-${{ github.ref_name }}"
|
||||
fi
|
||||
|
||||
# Update Chart.yaml temporarily with the versioned name
|
||||
sed -i "s/^version:.*/version: ${CHART_VERSION}/" ./helm/Chart.yaml
|
||||
|
||||
# Package the helm chart
|
||||
helm package ./helm
|
||||
|
||||
echo "CHART_NAME=${CHART_NAME}" >> $GITHUB_ENV
|
||||
echo "CHART_VERSION=${CHART_VERSION}" >> $GITHUB_ENV
|
||||
|
||||
- name: Push Helm chart to registry
|
||||
run: |
|
||||
CHART_VERSION=$(grep '^version:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
CHART_FILE=$(grep '^name:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
CHART_PATH="${CHART_FILE}-${CHART_VERSION}.tgz"
|
||||
|
||||
# Determine tag based on branch
|
||||
if [[ "${{ github.ref_name }}" == "main" ]]; then
|
||||
TAG="${{ steps.version.outputs.version }}"
|
||||
helm push "$CHART_PATH" oci://${{ env.REGISTRY }}/$CHART_FILE:$TAG
|
||||
helm push "$CHART_PATH" oci://${{ env.REGISTRY }}/$CHART_FILE:latest
|
||||
else
|
||||
TAG="${{ steps.version.outputs.version }}-${{ github.ref_name }}"
|
||||
helm push "$CHART_PATH" oci://${{ env.REGISTRY }}/$CHART_FILE:$TAG
|
||||
fi
|
||||
helm push ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}.tgz oci://${{ env.REGISTRY }}
|
||||
|
||||
- name: Chart pushed
|
||||
run: |
|
||||
CHART_VERSION=$(grep '^version:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
CHART_FILE=$(grep '^name:' ./helm/Chart.yaml | awk '{print $2}')
|
||||
if [[ "${{ github.ref_name }}" == "main" ]]; then
|
||||
echo "Chart pushed: $CHART_FILE:${{ steps.version.outputs.version }} and $CHART_FILE:latest"
|
||||
echo "Chart pushed: ${CHART_FILE}:${CHART_VERSION}"
|
||||
else
|
||||
echo "Chart pushed: $CHART_FILE:${{ steps.version.outputs.version }}-${{ github.ref_name }}"
|
||||
echo "Chart pushed: ${CHART_FILE}:${CHART_VERSION}-${{ github.ref_name }}"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user