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