Skip to content

Add detailed debug logging for HTTPRoute discovery and filtering #29

Add detailed debug logging for HTTPRoute discovery and filtering

Add detailed debug logging for HTTPRoute discovery and filtering #29

Workflow file for this run

name: Helm Chart Release
on:
push:
branches:
- main
paths:
- 'charts/homer-operator/Chart.yaml'
- 'charts/homer-operator/values.yaml'
- 'charts/homer-operator/templates/**'
- '.github/workflows/helm-release.yml'
tags:
- 'v*.*.*'
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
publish:
name: Publish Helm Chart
runs-on: ubuntu-latest
# Only run on direct pushes, not PRs
if: github.event_name == 'push'
permissions:
contents: read
packages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.17.0
- name: Validate chart
run: |
# Use helm lint instead of ct lint to avoid complex ct configuration
helm lint charts/homer-operator
# Verify template rendering
helm template test charts/homer-operator --dry-run > /dev/null
echo "Chart validation passed"
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract version
id: meta
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
# Extract version from tag (remove 'v' prefix)
TAG_VERSION=${GITHUB_REF#refs/tags/v}
echo "version=$TAG_VERSION" >> $GITHUB_OUTPUT
echo "chart_version=$TAG_VERSION" >> $GITHUB_OUTPUT
echo "is_release=true" >> $GITHUB_OUTPUT
echo "Using tag version: $TAG_VERSION"
else
# For main branch, use a dev version
echo "version=0.0.0-latest" >> $GITHUB_OUTPUT
echo "chart_version=0.0.0-latest" >> $GITHUB_OUTPUT
echo "is_release=false" >> $GITHUB_OUTPUT
echo "Using development version: 0.0.0-latest"
fi
- name: Update Chart versions
run: |
VERSION="${{ steps.meta.outputs.version }}"
if [[ $GITHUB_REF == refs/tags/* ]]; then
# For tags, update both version and appVersion
sed -i "s/version: .*/version: $VERSION/" charts/homer-operator/Chart.yaml
sed -i "s/appVersion: .*/appVersion: \"$VERSION\"/" charts/homer-operator/Chart.yaml
else
# For main branch, only update version (keep appVersion as 'latest')
sed -i "s/version: .*/version: $VERSION/" charts/homer-operator/Chart.yaml
sed -i "s/appVersion: .*/appVersion: \"latest\"/" charts/homer-operator/Chart.yaml
fi
echo "Updated chart version to: $VERSION"
- name: Package and Push Helm Chart
run: |
CHART_VERSION="${{ steps.meta.outputs.version }}"
REPO_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
# Package the chart
if ! helm package charts/homer-operator --destination ./packaged-charts; then
echo "Failed to package Helm chart"
exit 1
fi
# Verify package was created
if [[ ! -f "./packaged-charts/homer-operator-${CHART_VERSION}.tgz" ]]; then
echo "Package file not found: homer-operator-${CHART_VERSION}.tgz"
exit 1
fi
# Push to GHCR
if ! helm push "./packaged-charts/homer-operator-${CHART_VERSION}.tgz" "oci://${{ env.REGISTRY }}/${REPO_NAME}/charts"; then
echo "Failed to push Helm chart to registry"
exit 1
fi
echo "Chart successfully pushed to: oci://${{ env.REGISTRY }}/${REPO_NAME}/charts/homer-operator:${CHART_VERSION}"
- name: Generate summary
run: |
CHART_VERSION="${{ steps.meta.outputs.version }}"
REPO_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
IS_RELEASE="${{ steps.meta.outputs.is_release }}"
if [[ $IS_RELEASE == "true" ]]; then
echo "## Helm Chart Released" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Chart Version:** \`$CHART_VERSION\`" >> $GITHUB_STEP_SUMMARY
echo "**Registry:** \`${{ env.REGISTRY }}/${REPO_NAME}/charts\`" >> $GITHUB_STEP_SUMMARY
echo "**Tag:** \`${GITHUB_REF#refs/tags/}\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Installation" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "helm install homer-operator oci://${{ env.REGISTRY }}/${REPO_NAME}/charts/homer-operator --version $CHART_VERSION" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Stable release suitable for production use.**" >> $GITHUB_STEP_SUMMARY
else
echo "## Helm Chart Development Build" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Chart Version:** \`$CHART_VERSION\`" >> $GITHUB_STEP_SUMMARY
echo "**Registry:** \`${{ env.REGISTRY }}/${REPO_NAME}/charts\`" >> $GITHUB_STEP_SUMMARY
echo "**Branch:** \`${GITHUB_REF#refs/heads/}\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Installation (Development)" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "helm install homer-operator oci://${{ env.REGISTRY }}/${REPO_NAME}/charts/homer-operator --version $CHART_VERSION" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Development build from main branch - not for production use.**" >> $GITHUB_STEP_SUMMARY
fi