Files
api7-demo/.gitea/workflows/helm-build.yml
Daniele Viti 741295150d
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 10s
Build and Deploy / build-web (push) Failing after 24s
Build and Deploy / build-api (push) Failing after 26s
Update .gitea/workflows/helm-build.yml
2025-10-06 16:36:23 +02:00

101 lines
3.5 KiB
YAML

name: Helm Chart Build
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build-helm:
runs-on: ubuntu-latest
# Only run on main branch pushes (not on PRs)
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for proper versioning
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: "latest"
- name: Get chart version
run: |
# Get version from Chart.yaml
VERSION=$(grep '^version:' helm/api7ee-demo-k8s/Chart.yaml | awk '{print $2}')
echo "📌 Chart version: ${VERSION}"
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Lint Helm chart
run: |
helm lint helm/api7ee-demo-k8s/
- name: Prepare and package Helm chart
run: |
# Create a temporary copy of the chart for packaging
cp -r helm/api7ee-demo-k8s /tmp/api7ee-demo-k8s-chart
# Update image registry and repository to match Gitea
sed -i "s|registry: gitea.server_url|registry: ${{ vars.PACKAGES_REGISTRY || gitea.server_url }}|g" /tmp/api7ee-demo-k8s-chart/values.yaml
sed -i "s|repository: gitea.repository/|repository: ${{ gitea.repository }}/|g" /tmp/api7ee-demo-k8s-chart/values.yaml
# Package the chart
helm package /tmp/api7ee-demo-k8s-chart
# Store chart filename
echo "CHART_FILE=api7ee-demo-k8s-${VERSION}.tgz" >> $GITHUB_ENV
echo "📦 Packaged chart: api7ee-demo-k8s-${VERSION}.tgz"
- name: Push Helm chart to Gitea Package Registry
run: |
# Upload Helm chart to Gitea package registry
echo "📤 Uploading chart to Gitea Package Registry..."
curl --fail-with-body \
-H "Authorization: token ${{ secrets.TOKEN }}" \
-X POST \
-F "chart=@${CHART_FILE}" \
https://${{ vars.PACKAGES_REGISTRY || gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/helm/api/charts
echo "✅ Helm chart pushed successfully to Gitea Package Registry"
echo "📦 Chart: ${CHART_FILE}"
echo "🔗 Registry URL: https://${{ vars.PACKAGES_REGISTRY || gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/helm"
- name: Summary
run: |
echo "## 📦 Helm Chart Published"
echo ""
echo "- **Version:** ${VERSION}"
echo "- **Chart:** ${CHART_FILE}"
echo "- **Registry:** https://${{ vars.PACKAGES_REGISTRY || gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/helm"
echo ""
echo "### Installation"
echo '```bash'
echo "helm repo add api7ee https://${{ vars.PACKAGES_REGISTRY || gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/helm"
echo "helm repo update"
echo "helm install my-api7ee api7ee/api7ee-demo-k8s --version ${VERSION}"
echo '```'
lint-only:
runs-on: ubuntu-latest
# Only run on PRs
if: github.event_name == 'pull_request'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: "latest"
- name: Lint Helm chart
run: |
echo "🔍 Linting Helm chart for PR..."
helm lint helm/api7ee-demo-k8s/
echo "✅ Helm chart linting passed"