Add kaniko-build composite action, update docker-publish to use Kaniko

This commit is contained in:
Graham McIntire 2026-07-24 14:36:45 -05:00
parent 6a69247512
commit 9f99683140
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59
2 changed files with 58 additions and 10 deletions

View file

@ -0,0 +1,45 @@
name: "Kaniko Build and Push"
description: "Build and push Docker images using Kaniko (no Docker daemon needed)"
inputs:
registry:
required: false
default: "git.mcintire.me"
username:
required: false
default: "graham"
token:
required: true
image:
required: true
tag:
required: false
default: "latest"
dockerfile:
required: false
default: "Dockerfile"
context:
required: false
default: "."
runs:
using: "composite"
steps:
- name: Write registry credentials
shell: bash
run: |
mkdir -p /kaniko/.docker
cat > /kaniko/.docker/config.json <<'EOF'
{"auths":{"${{ inputs.registry }}":{"username":"${{ inputs.username }}","password":"${{ inputs.token }}"}}}
EOF
- name: Build and Push with Kaniko
shell: bash
run: |
docker run --rm \
-v "${{ inputs.context }}":/workspace \
-v /kaniko/.docker:/kaniko/.docker \
gcr.io/kaniko-project/executor:latest \
--context=/workspace \
--dockerfile="/workspace/${{ inputs.dockerfile }}" \
--destination="${{ inputs.image }}:${{ inputs.tag }}" \
--cache=true

View file

@ -4,16 +4,22 @@ on:
image_name:
required: true
type: string
description: "Image name (e.g. aprs.me)"
registry:
required: false
type: string
default: "git.mcintire.me"
description: "Container registry hostname"
username:
required: false
type: string
default: "graham"
dockerfile:
required: false
type: string
default: "Dockerfile"
context:
required: false
type: string
default: "."
secrets:
FORGEJO_TOKEN:
required: true
@ -24,15 +30,12 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Login to Forgejo Registry
uses: graham/infra/.forgejo/actions/container-login@main
- name: Build and Push via Kaniko
uses: graham/infra/.forgejo/actions/kaniko-build@main
with:
registry: ${{ inputs.registry }}
username: ${{ inputs.username }}
token: ${{ secrets.FORGEJO_TOKEN }}
- name: Build and Push
run: |
TAG=${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}:latest
docker build -t $TAG .
docker push $TAG
image: ${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}
dockerfile: ${{ inputs.dockerfile }}
context: ${{ inputs.context }}