From 527b297fa14199148bb18a8b83ea1f49348b79c0 Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Sat, 7 Jun 2025 20:29:34 +0200 Subject: [PATCH] sss --- .woodpecker/build.yaml | 2 +- entrypoint.sh | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index 41af50c..f60f0b3 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -12,7 +12,7 @@ steps: pull: true settings: &settings name: registry.kokuwa.io/buildctl:$CI_PIPELINE_NUMBER - auth1: {from_secret: AUTH} + auth: {from_secret: AUTH} platform: [linux/amd64, linux/arm64] annotation: org.opencontainers.image.title: Buildctl Plugin diff --git a/entrypoint.sh b/entrypoint.sh index 5dc196a..2d04181 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -exu; env | sort | grep -v DRONE - +echo $PLUGIN_ARCH | base64 -w0 ## ## check input ## @@ -24,10 +24,10 @@ SOURCE_DATE_EPOCH=${PLUGIN_SOURCE_DATE_EPOCH:-0} ## COMMAND="buildctl" +COMMAND="$COMMAND build" if [[ -n "${PLUGIN_ADDR:-}" ]]; then COMMAND="$COMMAND --addr $PLUGIN_ADDR" fi -COMMAND="$COMMAND build" COMMAND="$COMMAND --frontend $BUILDCTL_FRONTEND" COMMAND="$COMMAND --local context='$BUILDCTL_CONTEXT'" COMMAND="$COMMAND --local dockerfile='$BUILDCTL_DOCKERFILE'" @@ -35,9 +35,17 @@ if [[ "${PLUGIN_PLATFORM:-}" == "true" ]]; then COMMAND="$COMMAND --opt platform='$PLUGIN_PLATFORM'" fi # https://github.com/moby/buildkit/blob/master/README.md#output -if [[ -n "${PLUGIN_NAME:-}" ]]; then - COMMAND="$COMMAND --output type=image,name=$PLUGIN_NAMES,push=${PLUGIN_PUSH:-true}" +OUTPUT="" +if [[ "${PLUGIN_NAME:-}" == "true" ]]; then + OUTPUT="$OUTPUT --output type=image,\"name=$PLUGIN_NAME\",push=${PLUGIN_PUSH:-true},oci-mediatypes=true,oci-artifact=true,compression=estargz" + OUTPUT="$OUTPUT,oci-mediatypes=true,oci-artifact=true,compression=estargz,compression-level=9" + OUTPUT="$OUTPUT,rewrite-timestamp=true" + export IFS=";" + for PLUGIN_ANNOTATION_ITEM in "${PLUGIN_ANNOTATION:-}"; do + OUTPUT="$OUTPUT,annotation.$PLUGIN_ANNOTATION_ITEM" + done fi +COMMAND="$COMMAND $OUTPUT" # custom args, e.g. docker run --rm --volume=$HOME:HOME:ro --workdir=$PWD kokuwaio/buildkit --opt buildarg=foo=bar if [[ -n "${1:-}" ]]; then @@ -48,6 +56,12 @@ fi ## execute command ## +echo "SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH docker buildx build ${PLUGIN_CONTEXT:-.}" +if [[ "${PLUGIN_PLATFORM:-}" == "true" ]]; then + echo " --platform='$PLUGIN_PLATFORM'" + echo " $OUTPUT" +fi + echo -e "SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH ${COMMAND// --/\\n --}\n" eval "$COMMAND"