infra/.forgejo/actions/kaniko-build/action.yml

45 lines
1.2 KiB
YAML

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