From 3344c63c2b9a41c53e4bd3d5ac581a540c719b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 15 Mar 2026 00:19:09 +0000 Subject: [PATCH] gitea public actions added BuildKit Build and Deploys --- .../actions/buildkit-build-push/action.yaml | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .gitea/actions/buildkit-build-push/action.yaml diff --git a/.gitea/actions/buildkit-build-push/action.yaml b/.gitea/actions/buildkit-build-push/action.yaml new file mode 100644 index 0000000..4bb463d --- /dev/null +++ b/.gitea/actions/buildkit-build-push/action.yaml @@ -0,0 +1,59 @@ +name: BuildKit Build and Deploys +description: "Build and deploy images" + +inputs: + registry_addr: + description: registry address + required: true + registry_username: + description: "registry username" + required: true + registry_password: + description: "registry password" + required: true + buildkit_addr: + description: "buildkit address" + required: true + default: "false" + name: + description: "image name" + required: true + default: "false" + context: + description: "buildctl build context" + required: false + default: "." + dockerfile: + description: "buildctl build dockerfile/folder" + required: true + default: "false" +runs: + using: "composite" + steps: + - name: Authenticate to Gitea registry + shell: bash + run: | + # Create a temporary file inside GITHUB_TEMP + DOCKER_CONFIG_FILE="${GITHUB_TEMP}/docker_config.json" + + # Ensure cleanup ALWAYS happens + trap 'rm -f "$DOCKER_CONFIG_FILE"' EXIT + + # Generate auth entry + AUTH=$(printf "%s" "${{ inputs.registry_username }}:${{ inputs.registry_password }}" | base64 -w 0) + + printf '{"auths":{"%s":{"auth":"%s"}}}' \ + "${{ inputs.registry_addr }}" \ + "$AUTH" \ + > "$DOCKER_CONFIG_FILE" + + # Run BuildKit build + buildctl \ + --addr ${{ inputs.buildkit_addr }} \ + build \ + --frontend=dockerfile.v0 \ + --local context=${{ inputs.context }} \ + --local dockerfile=${{ inputs.dockerfile }} \ + --opt filename=Dockerfile \ + --output type=image,name=${{ inputs.tags }},push=true,registry.config=$DOCKER_CONFIG_FILE +