# github-actions **Repository Path**: mirrors_docker/github-actions ## Basic Information - **Project Name**: github-actions - **Description**: :warning: This repository is deprecated and has been replaced by docker/build-push-action@v2 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2025-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Deprecated This repository is being replaced with [docker/build-push-action@v2](https://github.com/docker/build-push-action/) which includes significant changes and now uses Docker [Buildx](https://github.com/docker/buildx). It will not receive any future updates, please update your workflows. [Upgrade notes](https://github.com/docker/build-push-action/blob/master/UPGRADE.md) with many [usage examples](https://github.com/docker/build-push-action/#advanced-usage) have been added to handle most use cases. ## About The core code base for Docker's GitHub Actions (https://github.com/features/actions). This code is used to build the docker/github-actions image that provides the functionality used by the published Docker GitHub Action: * [Build and push Docker images action](https://github.com/docker/build-push-action) `github-actions` runs a command line tool that shells out to docker to perform the various functions. Parameters are supplied to `github-actions` using environment variables in the form described by the GitHub Actions documentation. `github-actions` uses some of the default GitHub Actions environment variables as described in the individual commands section. ## Commands Commands can be called using `docker run docker/github-actions {command}` ### login Does a `docker login` using the supplied username and password. Will default to Docker Hub but can be supplied a server address to login to a third-party registry as required. #### inputs |Environment Variable|Required|Description| |---|---|---| |INPUT_USERNAME|yes|Username to login with| |INPUT_PASSWORD|yes|Password to login with| |INPUT_REGISTRY|no|Registry server to login to. Defaults to Docker Hub| ### build Builds and tags a docker image. #### inputs |Environment Variable|Required|Description| |---|---|---| |INPUT_PATH|yes|Path to build from| |INPUT_DOCKERFILE|no|Path to Dockerfile| |INPUT_ADD_GIT_LABELS|no|Adds git labels (see below)| |INPUT_TARGET|no|Target build stage to build| |INPUT_BUILD_ARGS|no|Comma-delimited list of build-args| |INPUT_LABELS|no|Comma-delimited list of labels| |INPUT_CACHE_FROMS|no|Comma-delimited list of cache-froms| See the tagging section for information on tag inputs ##### Git labels When `INPUT_ADD_GIT_LABELS` is `true` labels are automatically added to the image that contain data about the current state of the git repo based on the standards set out in https://github.com/opencontainers/image-spec/blob/master/annotations.md. 3 labels are supported: |Label|Description| |---|---| |org.opencontainers.image.created|Date and time on which the image was built (string, date-time as defined by RFC 3339).| |org.opencontainers.image.source|URL to this repository. E.g. `https://github.com/myorg/myrepository`| |org.opencontainers.image.revision|The full git sha of this commit.| ### push Pushes a docker image. #### inputs See the tagging section for information on tag inputs ### build-push Builds, logs in, and pushes a docker image. #### inputs Same as the login and build commands with the addition of |Environment Variable|Required|Description| |---|---|---| |INPUT_PUSH|no|Will push the image if true| ## Tagging Tagging of images can be set manually, left to `github-actions` to automate, or a combination of the both. There are 4 input variables used for tagging |Environment Variable|Required|Description| |---|---|---| |INPUT_REGISTRY|no|Registry server to tag with| |INPUT_REPOSITORY|yes|Repository to tag with| |INPUT_TAGS|no|Hard coded comma-delimited list of tags| |INPUT_TAG_WITH_REF|no|If true then `github-actions` will add tags depending on the git ref automatically as described below| |INPUT_TAG_WITH_SHA|no|If true then `github-actions` will add a tag in the form `sha-{git-short-sha}`| If `INPUT_REGISTRY` is set then all tags are prefixed with `{INPUT_REGISTRY}/{INPUT_REPOSITORY}:`. If not then all tags are prefixed with `{INPUT_REPOSITORY}:` Auto tags depend on the git reference that the run is associated with. The reference is passed to `github-actions` using the GitHub actions `GITHUB_REF` enviroment variable. If the reference is `refs/heads/{branch-name}` then the tag `{branch-name}` is added. For the master branch the `{branch-name}` is replaced with `latest`. If the reference is `refs/pull/{pr}` then the tag `pr-{pr}` is added. If the reference is `refs/tags/{tag-name}` then the tag `{tag-name}` is added. Any `/` in the auto tags are replaced with `-`. For example if the environment variables are as follows: |Variable|Value| |---|---| |INPUT_REGISTRY|| |INPUT_REPOSITORY|myorg/myimage| |INPUT_TAGS|foo,bar| |INPUT_TAG_WITH_REF|true| |GITHUB_REF|refs/tags/v0.1| Then the image will be tagged with: ``` myorg/myimage:foo myorg/myimage:bar myorg/myimage:v0.1 ``` If the variables are as follows: |Variable|Value| |---|---| |INPUT_REGISTRY|myregistry| |INPUT_REPOSITORY|myorg/myimage| |INPUT_TAGS|foo,bar| |INPUT_TAG_WITH_REF|true| |INPUT_TAG_WITH_SHA|true| |GITHUB_REF|refs/heads/master| |GITHUB_SHA|c6df8c68eb71799f9c9ab4a4a4650d6aabd7e415| Then the image will be tagged with: ``` myregistry/myorg/myimage:foo myregistry/myorg/myimage:bar myregistry/myorg/myimage:lastest myregistry/myorg/myimage:sha-c6df8c6 ``` ## Building github-actions The code is written in Go v1.13 with `go mod`. It can be built locally using the `Makefile` or in docker using the `docker.Makefile`. `make -f docker.Makefile` will build the code, check the linting using golangci-lint, run the go tests, and build the image with a tag of docker/github-actions:latest `make -f docker.Makefile image` will build the github-actions image without a tag and without running test or lint checking `make -f docker.Makefile cli` will build the cli and copy it to `./bin/github-actions` `make -f docker.Makefile test` will run the unit and e2e tests