110 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
---
 | 
						|
name: Release
 | 
						|
on:
 | 
						|
  schedule: 
 | 
						|
    - cron: "0 0 * * *"
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - main
 | 
						|
    tags:
 | 
						|
      - "v*.*.*"
 | 
						|
jobs:
 | 
						|
  docker:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    env:
 | 
						|
      DOCKER_ORG: ryanc
 | 
						|
      DOCKER_LATEST: latest
 | 
						|
    defaults:
 | 
						|
      run:
 | 
						|
        shell: bash
 | 
						|
    outputs:
 | 
						|
      metadata: ${{ steps.output.outputs.metadata }}
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 | 
						|
        with:
 | 
						|
          fetch-depth: 0 # all history for all branches and tags
 | 
						|
 | 
						|
      - name: Prepare
 | 
						|
        id: prep
 | 
						|
        run: |
 | 
						|
          VERSION="sha-${GITHUB_SHA::8}"
 | 
						|
          if [[ "$GITHUB_REF" == refs/tags/* ]]; then
 | 
						|
            VERSION="${GITHUB_REF/refs\/tags\//}"
 | 
						|
          fi
 | 
						|
          printf "GITHUB_REF=%s\n" "$GITHUB_REF"
 | 
						|
          printf "GITHUB_SHA=%s\n" "$GITHUB_SHA"
 | 
						|
          printf "VERSION=%s\n" "$VERSION" | tee -a "$GITHUB_OUTPUT"
 | 
						|
 | 
						|
      - name: Set up QEMU
 | 
						|
        uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
 | 
						|
 | 
						|
      - name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
 | 
						|
 | 
						|
      - name: Login to Gitea registry
 | 
						|
        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
 | 
						|
        with:
 | 
						|
          registry: git.kill0.net
 | 
						|
          username: ${{ secrets.DOCKER_USERNAME }}
 | 
						|
          password: ${{ secrets.DOCKER_PASSWORD }}
 | 
						|
 | 
						|
      - name: Docker meta (debian)
 | 
						|
        id: meta
 | 
						|
        uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
 | 
						|
        with:
 | 
						|
          images: |
 | 
						|
            git.kill0.net/ryanc/kubernaut
 | 
						|
          flavor: |
 | 
						|
            latest=auto
 | 
						|
          bake-target: docker-metadata-action
 | 
						|
          tags: |
 | 
						|
            type=schedule,pattern=nightly
 | 
						|
            type=edge
 | 
						|
            type=ref,event=branch
 | 
						|
            type=ref,event=pr
 | 
						|
            type=semver,pattern={{version}}
 | 
						|
            type=semver,pattern={{major}}.{{minor}}
 | 
						|
            type=semver,pattern={{major}}
 | 
						|
            type=sha
 | 
						|
 | 
						|
      - name: Docker meta (alpine)
 | 
						|
        id: meta-alpine
 | 
						|
        uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
 | 
						|
        with:
 | 
						|
          images: |
 | 
						|
            git.kill0.net/ryanc/kubernaut
 | 
						|
          bake-target: docker-metadata-action-alpine
 | 
						|
          flavor: |
 | 
						|
            latest=auto
 | 
						|
            suffix=-alpine,onlatest=true
 | 
						|
          tags: |
 | 
						|
            type=schedule,pattern=nightly
 | 
						|
            type=edge
 | 
						|
            type=ref,event=branch
 | 
						|
            type=ref,event=pr
 | 
						|
            type=semver,pattern={{version}}
 | 
						|
            type=semver,pattern={{major}}.{{minor}}
 | 
						|
            type=semver,pattern={{major}}
 | 
						|
            type=sha
 | 
						|
 | 
						|
      - name: Docker build and push
 | 
						|
        uses: docker/bake-action@76f9fa3a758507623da19f6092dc4089a7e61592 # v6.6.0
 | 
						|
        with:
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          files: |
 | 
						|
            ./docker-bake.hcl
 | 
						|
            cwd://${{ steps.meta.outputs.bake-file }}
 | 
						|
            cwd://${{ steps.meta-alpine.outputs.bake-file }}
 | 
						|
 | 
						|
      - name: Setup Helm
 | 
						|
        uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
 | 
						|
 | 
						|
      - name: Publish Helm chart
 | 
						|
        if: ${{ contains(github.ref, 'refs/tags/') }}
 | 
						|
        run: |
 | 
						|
          HELM_VERSION="${{ steps.prep.outputs.VERSION }}"
 | 
						|
          HELM_VERSION="${HELM_VERSION#v}"
 | 
						|
          helm package charts/kubernaut
 | 
						|
          helm push "kubernaut-${HELM_VERSION}.tgz" oci://git.kill0.net/ryanc/helm-charts
 |