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"