name: BuildKit Build and push - dev description: "Build and push images using remote Buildkit" 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 tags: description: "image tags / buildctl image name" required: true context: description: "buildctl build context" required: false default: "." dockerfile: description: "buildctl build dockerfile/folder" required: true default: "." filename: description: "Docker file name (Default: Dockerfile)" required: true default: "Dockerfile" build_args: description: "Build arguments (multiline KEY=VALUE)" required: false default: "" runs: using: "composite" steps: - name: run buildctl build and push shell: bash run: | AUTH_JSON=$(printf '{"auths":{"%s":{"auth":"%s"}}}' \ "${{ inputs.registry_addr }}" \ "$(printf "%s:%s" "${{ inputs.registry_username }}" "${{ inputs.registry_password }}" | base64 -w0)") buildctl \ --addr ${{ inputs.buildkit_addr }} \ build \ --frontend=dockerfile.v0 \ --local context=${{ inputs.context }} \ --local dockerfile=${{ inputs.dockerfile }} \ --opt filename=${{ inputs.filename }} \ $BUILD_ARG_FLAGS \ --output type=image,name=${{ inputs.tags }},push=true,registry.config=$AUTH_JSON