72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
name: pipeline
|
|
on:
|
|
push:
|
|
branches:
|
|
- "master"
|
|
|
|
permissions:
|
|
packages: write
|
|
|
|
jobs:
|
|
build-and-push-images:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: https://gitea.com/actions/checkout@v4
|
|
|
|
- name: Log in to container registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: https://git.vhaudiquet.fr
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.PACKAGES_TOKEN }}
|
|
|
|
- name: Build and push docker image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: |
|
|
git.vhaudiquet.fr/vhaudiquet/vhaudiquet.fr:latest
|
|
git.vhaudiquet.fr/vhaudiquet/vhaudiquet.fr:${{ github.sha }}
|
|
|
|
lint-and-publish-chart:
|
|
runs-on: ubuntu-latest
|
|
needs: build-and-push-images
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: https://gitea.com/actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Helm
|
|
uses: azure/setup-helm@v5
|
|
|
|
- name: Update Chart version and appVersion
|
|
run: |
|
|
# Get base chart version from Chart.yaml
|
|
BASE_VERSION=$(grep '^version:' chart/Chart.yaml | awk '{print $2}')
|
|
# Use timestamp for ordered versions (e.g., 0.1.0-20240511-130400)
|
|
# Note: SemVer pre-release cannot contain dots, only hyphens and alphanumerics
|
|
TIMESTAMP=$(date -u +"%Y%m%d-%H%M%S")
|
|
CHART_VERSION="${BASE_VERSION}-${TIMESTAMP}"
|
|
|
|
# Update both version and appVersion
|
|
sed -i "s/^version:.*/version: \"${CHART_VERSION}\"/" chart/Chart.yaml
|
|
sed -i "s/^appVersion:.*/appVersion: \"${{ github.sha }}\"/" chart/Chart.yaml
|
|
|
|
echo "chart_version=${CHART_VERSION}" >> $GITHUB_ENV
|
|
|
|
- name: Lint Helm chart
|
|
run: helm lint chart/
|
|
|
|
- name: Package Helm chart
|
|
run: helm package chart/
|
|
|
|
- name: Push Helm chart to Gitea registry
|
|
run: |
|
|
echo "Uploading chart to Gitea registry..."
|
|
echo "User: ${{ github.actor }}"
|
|
echo "URL: https://git.vhaudiquet.fr/api/packages/vhaudiquet/helm/api/charts"
|
|
curl --fail -v --user "${{ github.actor }}:${{ secrets.PACKAGES_TOKEN }}" -X POST --upload-file vhaudiquet-fr-*.tgz "https://git.vhaudiquet.fr/api/packages/vhaudiquet/helm/api/charts"
|