51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
---
|
|
name: Forgejo Kaniko
|
|
description: Build a container image using Kaniko
|
|
branding:
|
|
icon: anchor
|
|
color: blue
|
|
inputs:
|
|
dockerfile:
|
|
description: The Dockerfile to pass to Kaniko
|
|
required: false
|
|
image:
|
|
description: Name and tag under which to upload the image
|
|
required: true
|
|
registry:
|
|
description: Domain of the registry. Should be the same as the first path component of the tag.
|
|
required: false
|
|
default: https://index.docker.io/v1/
|
|
username:
|
|
description: Username for the container registry
|
|
required: true
|
|
password:
|
|
description: Password for the container registry
|
|
required: true
|
|
runs:
|
|
using: docker
|
|
image: docker://gcr.io/kaniko-project/executor:debug
|
|
entrypoint: /bin/sh
|
|
args:
|
|
- -c
|
|
- |
|
|
mkdir -p /kaniko/.docker
|
|
echo '{"auths":{"${{ inputs.registry }}":{"auth":"'$(printf "%s:%s" "${{ inputs.username }}" "${{ inputs.password }}" | base64 | tr -d '\n')'"}}}' > /kaniko/.docker/config.json
|
|
|
|
if [ -n "${{ inputs.dockerfile }}" ]; then
|
|
echo "Using Dockerfile from input"
|
|
echo "${{ inputs.dockerfile }}" > Dockerfile
|
|
elif [ -f "./Dockerfile" ]; then
|
|
echo "Using existing ./Dockerfile from workspace"
|
|
else
|
|
echo "ERROR: No Dockerfile provided and no ./Dockerfile found in workspace"
|
|
exit 1
|
|
fi
|
|
|
|
dest_flags=""
|
|
for dest in $(echo "${{ inputs.image }}" | tr ',' ' '); do
|
|
dest_flags="$dest_flags --destination=$dest"
|
|
done
|
|
|
|
echo "Destinations: $dest_flags"
|
|
|
|
/kaniko/executor --dockerfile Dockerfile --context $GITHUB_WORKSPACE $dest_flags
|