Skip to content

Instantly share code, notes, and snippets.

@torresdal
Created March 25, 2019 09:16
Show Gist options
  • Save torresdal/fe5a0d9081d4b562c1fd57370907a452 to your computer and use it in GitHub Desktop.
Save torresdal/fe5a0d9081d4b562c1fd57370907a452 to your computer and use it in GitHub Desktop.
version: 2
jobs:
build_docker:
docker:
- image: docker:18.09-git
working_directory: /build
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Docker login to registry
command: |
docker login -u $docker_user -p $docker_password hub.docker.com
- run:
name: Build docker image and push to registry
command: |
echo 'export GIT_HASH=`echo $CIRCLE_SHA1 | head -c 8`' >> $BASH_ENV
source $BASH_ENV
docker build . -t some-docker-account/some-docker-image:$GIT_HASH
docker push some-docker-account/some-docker-image:$GIT_HASH
release_docker:
docker:
- image: docker:18.09-git
working_directory: /build
steps:
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Docker login to registry
command: |
docker login -u $docker_user -p $docker_password hub.docker.com
- run:
name: Re-tag docker image
command: |
echo 'export GIT_HASH=`echo $CIRCLE_SHA1 | head -c 8`' >> $BASH_ENV
source $BASH_ENV
docker pull some-docker-account/some-docker-image:$GIT_HASH
docker tag some-docker-account/some-docker-image:$GIT_HASH some-docker-account/some-docker-image:$CIRCLE_TAG
docker push some-docker-account/some-docker-image:$CIRCLE_TAG
workflows:
version: 2
default:
jobs:
- checkout:
filters:
tags:
ignore: /[0-9]+(\.[0-9]+)*/
- build_docker
create_release:
jobs:
- release_docker:
filters:
# Ignore any commit on any branch by default
branches:
ignore: /.*/
# Only act on semver tags
tags:
only: /^[0-9]+(\.[0-9]+)*$/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment