44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/busybox/sh
|
|
set -e pipefail
|
|
|
|
OLDIFS=$IFS
|
|
|
|
REGISTRY="${INPUT_PUSH_REGISTRY}"
|
|
REGISTRY_CERTIFICATE="${INPUT_REGISTRY_CERTIFICATE}"
|
|
USERNAME="${INPUT_USERNAME:-$GITHUB_ACTOR}"
|
|
PASSWORD="${INPUT_PASSWORD:-$GITHUB_TOKEN}"
|
|
crane auth login "$REGISTRY" -u "$USERNAME" -p "$PASSWORD"
|
|
|
|
IMAGE="$(echo "${INPUT_TAGS}" | cut -f1 -d':')"
|
|
TAGS="${INPUT_TAGS:-$REGISTRY/$GITEA_REPO/$GITEA_REF_NAME}"
|
|
|
|
DOCKERFILE="${INPUT_FILE}"
|
|
CONTEXT="${INPUT_CONTEXT}"
|
|
|
|
LABELS="--label org.opencontainers.image.created=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")"
|
|
for label in $INPUT_LABELS; do
|
|
LABELS="$LABELS --label $label"
|
|
done
|
|
ARGS="$LABELS --context $CONTEXT --dockerfile $DOCKERFILE"
|
|
|
|
if [ -n "$REGISTRY_CERTIFICATE" ]; then
|
|
ARGS="$ARGS --registry-certificate ${REGISTRY}:${REGISTRY_CERTIFICATE}"
|
|
fi
|
|
|
|
runKaniko() {
|
|
IFS=''
|
|
EXECUTOR="executor ${1} --reproducible --force --cleanup"
|
|
echo "Build with: ${EXECUTOR}"
|
|
eval "${EXECUTOR}"
|
|
IFS=$OLDIFS
|
|
}
|
|
|
|
echo "Building image $IMAGE"
|
|
|
|
DESTINATION="--destination $IMAGE:latest --destination $TAGS"
|
|
runKaniko "${ARGS} $DESTINATION $DIGEST"
|
|
|
|
DIGEST=$(head -n 1 '/kaniko/build/image-tag-digest' | cut -f2 -d '@')
|
|
echo "Image $IMAGE pushed"
|
|
echo "Digest: $DIGEST"
|