diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 03194a2..97314b5 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -83,6 +83,16 @@ jobs: printf "GITHUB_SHA=%s\n" "$GITHUB_SHA" printf "VERSION=%s\n" "$VERSION" | tee -a "$GITHUB_OUTPUT" + - 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 id: meta uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 @@ -98,22 +108,45 @@ jobs: type=semver,pattern={{major}} type=sha - - 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 build and push - uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0 + uses: docker/bake-action@76f9fa3a758507623da19f6092dc4089a7e61592 # v6.6.0 with: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + targets: "bookworm" + files: | + ./docker-bake.hcl + cwd://${{ steps.meta.outputs.bake-file }} + + - name: Docker meta + id: meta + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 + with: + images: | + git.kill0.net/ryanc/kubernaut + flavor: | + latest=false + suffix=alpine + tags: | + type=schedule + 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' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + targets: "alpine" + files: | + ./docker-bake.hcl + cwd://${{ steps.meta.outputs.bake-file }} - name: Setup Helm uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0 diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 0000000..06119d6 --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,19 @@ +group "default" { + targets = [ "bookworm", "alpine" ] +} +target "_common" { + args = { + RUBY_VERSION = "3.4.3" + } +} + +target "bookworm" { + dockerfile = "./dockerfiles/bookworm.Dockerfile" + inherits = [ "_common" ] + tags = [ "git.kill0.net/ryanc/kubernaut" ] +} + +target "alpine" { + dockerfile = "./dockerfiles/alpine.Dockerfile" + inherits = [ "_common" ] +} diff --git a/dockerfiles/alpine.Dockerfile b/dockerfiles/alpine.Dockerfile new file mode 100644 index 0000000..b033cb0 --- /dev/null +++ b/dockerfiles/alpine.Dockerfile @@ -0,0 +1,41 @@ +ARG RUBY_VERSION="3.4.3" +FROM ruby:${RUBY_VERSION}-alpine AS base + +WORKDIR /app + +RUN <