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: "" 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