Skip to content
Permalink
dda70725ed
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Latest commit ff32939 Nov 16, 2021 History
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
0 contributors

Users who have contributed to this file

Upgrade notes

v1 to v2

  • Input path is now called context for consistency with other Docker build tools
  • path defaults to current git repository so checkout action is not required in a workflow
  • Rename dockerfile input to file for consistency with other Docker build tools
  • Rename always_pull input to pull for consistency with other Docker build tools
  • Add builder input to be able to choose a builder instance through our setup-buildx action
  • Add platforms input to support multi-platform builds
  • Add allow input
  • Add load input
  • Add outputs input
  • Add cache-from input (cache_froms removed)
  • Add cache-to input
  • Rename build_args input to build-args for consistency with other Docker build tools
  • Add secrets input
  • Review tags input
  • Remove repository input. See Simple workflow for migration
  • Remove username, password and registry inputs. Login support moved to docker/login-action repo
  • Remove tag_with_sha, tag_with_ref, add_git_labels inputs. See Tags with ref and Git labels for migration
  • Handle Git context
  • Add digest output

Simple workflow

# v1
steps:
  -
    name: Checkout
    uses: actions/checkout@v2
  -
    name: Build and push Docker images
    uses: docker/build-push-action@v1
    with:
      username: ${{ secrets.DOCKER_USERNAME }}
      password: ${{ secrets.DOCKER_PASSWORD }}
      repository: myorg/myrepository
      always_pull: true
      build_args: arg1=value1,arg2=value2
      cache_froms: myorg/myrepository:latest
      tags: latest
# v2
steps:
  -
    name: Checkout
    uses: actions/checkout@v2
  -
    name: Set up Docker Buildx
    uses: docker/setup-buildx-action@v1
  -
    name: Login to DockerHub
    uses: docker/login-action@v1
    with:
      username: ${{ secrets.DOCKER_USERNAME }}
      password: ${{ secrets.DOCKER_PASSWORD }}
  -
    name: Build and push
    uses: docker/build-push-action@v2
    with:
      context: .
      pull: true
      push: true
      build-args: |
        arg1=value1
        arg2=value2
      cache-from: type=registry,ref=myorg/myrepository:latest
      cache-to: type=inline
      tags: myorg/myrepository:latest

Tags with ref and Git labels

# v1
steps:
  -
    name: Checkout
    uses: actions/checkout@v2
  -
    name: Build and push Docker images
    uses: docker/build-push-action@v1
    with:
      username: ${{ secrets.DOCKER_USERNAME }}
      password: ${{ secrets.DOCKER_PASSWORD }}
      repository: myorg/myrepository
      push: ${{ github.event_name != 'pull_request' }}
      tag_with_ref: true
      tag_with_sha: true
      add_git_labels: true
# v2
steps:
  -
    name: Checkout
    uses: actions/checkout@v2
  -
    name: Docker meta
    id: meta
    uses: docker/metadata-action@v3
    with:
      images: |
        myorg/myrepository
      tags: |
        type=ref,event=branch
        type=ref,event=pr
        type=semver,pattern={{version}}
        type=sha
  -
    name: Set up Docker Buildx
    uses: docker/setup-buildx-action@v1
  -
    name: Login to DockerHub
    if: github.event_name != 'pull_request'
    uses: docker/login-action@v1 
    with:
      username: ${{ secrets.DOCKER_USERNAME }}
      password: ${{ secrets.DOCKER_PASSWORD }}
  -
    name: Build and push
    uses: docker/build-push-action@v2
    with:
      context: .
      push: ${{ github.event_name != 'pull_request' }}
      tags: ${{ steps.meta.outputs.tags }}
      labels: ${{ steps.meta.outputs.labels }}