action.yml
name: "Docker Build & Push Action"
description: "Builds a Docker image and pushes to a private registry with support for multiple tags"
author: "Sean Smith"
inputs:
image:
description: "Name of the Docker image"
required: true
tags:
description: "Tags override for Docker image"
required: false
registry:
description: "Target Docker registry"
required: true
dockerfile:
description: "Location of Dockerfile, if not Dockerfile in root directory"
required: false
default: "Dockerfile"
directory:
description: "Directory to run `docker build` from, if not project root"
required: false
buildArgs:
description: "Docker build arguments passed via --build-arg"
required: false
labels:
description: "Docker build labels passed via --label"
required: false
target:
description: "Docker build target passed via --target"
required: false
platform:
description: "Docker build platform passed via --platform"
required: false
ssh:
description: "Docker build ssh options passed via --ssh"
required: false
username:
description: "Docker registry username"
required: false
password:
description: "Docker registry password"
required: false
gitHubOrg:
description: "GitHub organization to push image to (if not current)"
required: false
addLatest:
description: "Adds latest tag to auto-generated GitOps tag"
required: false
default: "false"
addTimestamp:
description: "Suffixes a build timestamp to the branch-based Docker tag"
required: false
default: "false"
enableBuildKit:
description: "Enables Docker BuildKit support"
required: false
default: "false"
multiPlatform:
description: "Builds image with buildx to support multiple platforms"
required: false
default: "false"
overrideDriver:
description: "Disables setting up docker-container driver"
required: false
default: "false"
pushImage:
description: "Flag for disabling the login & push steps, set to true by default"
required: false
default: "true"
outputs:
imageFullName:
description: "Full name of the Docker image with registry prefix and tag suffix"
imageName:
description: "Name of the Docker image with owner prefix"
tags:
description: "Tags for the Docker image"
runs:
using: "node20"
main: "dist/index.js"
branding:
icon: "anchor"
color: "blue"