diff --git a/.gitea/workflows/docker-kubernetes.yaml b/.gitea/workflows/docker-kubernetes.yaml index 1fc69b5..a32b577 100644 --- a/.gitea/workflows/docker-kubernetes.yaml +++ b/.gitea/workflows/docker-kubernetes.yaml @@ -14,9 +14,8 @@ on: description: Webhook to call after build is completed type: string outputs: - digest: - description: Digest of the build docker container - value: ${{ jobs.build.outputs.digest }} + images: + value: ${{ jobs.build.outputs.images }} env: OCI_REPO: git.huizinga.dev/dreaded_x/${{ gitea.event.repository.name}} @@ -26,7 +25,7 @@ jobs: name: Build container and manifests runs-on: ubuntu-latest outputs: - digest: ${{ steps.build.outputs.digest }} + images: ${{ steps.images.outputs.images }} steps: - name: Checkout uses: actions/checkout@v4 @@ -63,7 +62,6 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.OCI_REPO }} tags: | type=edge type=ref,event=branch @@ -71,23 +69,29 @@ jobs: type=semver,pattern=v{{major}}.{{minor}} type=semver,pattern=v{{major}} - - name: Build container - id: build - uses: docker/build-push-action@v6 + - name: Bake containers + id: bake + uses: docker/bake-action@v6 with: - context: . + files: | + ./docker-bake.hcl + cwd://${{ steps.meta.outputs.bake-file }} push: true sbom: true provenance: mode=max - tags: ${{ steps.meta.outputs.tags }} - annotations: ${{ steps.meta.outputs.annotations }} - cache-from: type=gha - cache-to: type=gha,mode=max - build-args: | - "RELEASE_VERSION=${{ env.RELEASE_VERSION }}" env: + TAG_BASE: ${{ env.OCI_REPO }} + RELEASE_VERSION: ${{ env.RELEASE_VERSION }} SOURCE_DATE_EPOCH: ${{ env.TIMESTAMP }} + - name: Output images + id: images + run: | + METADATA='${{ steps.bake.outputs.metadata }}' + IMAGES=$(echo ${METADATA} | jq 'map_values((."image.name" | split(",|:";""))[0] + "@" + ."containerimage.digest")') + echo images=${IMAGES} >> $GITHUB_OUTPUT + + # TODO: Move this into docker-bake.hcl - name: Generate CRDs if: inputs.generate_crds == true run: | @@ -96,6 +100,7 @@ jobs: - name: Kustomize manifests if: inputs.push_manifests == true run: | + # TODO: Fix this ./kustomize build ./manifests | sed "s/\${DIGEST}/${{ steps.build.outputs.digest }}/" > ./manifests.yaml - name: Push manifests