Do not push Docker images for forked repositories (#272)

For security reasons, CircleCI does not make environment variables
available on forked repositories (often used in PRs). This will still
build the docker image, but won't try to push it to dockerhub.
This commit is contained in:
Thomas Pelletier
2019-04-11 13:49:07 +01:00
committed by GitHub
parent 51edd0ca49
commit 6ea91ef590
+15 -10
View File
@@ -96,19 +96,24 @@ jobs:
- setup_remote_docker: - setup_remote_docker:
docker_layer_caching: true docker_layer_caching: true
- run: docker build -t pelletier/go-toml:$CIRCLE_SHA1 . - run: docker build -t pelletier/go-toml:$CIRCLE_SHA1 .
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
- run: - run:
name: "Publish docker image" name: "Publish docker image"
command: | command: |
IMAGE_NAME="pelletier/go-toml" if [ "${CIRCLE_PR_REPONAME}" == "" ]; then
IMAGE_SHA_TAG="${IMAGE_NAME}:$CIRCLE_SHA1" IMAGE_NAME="pelletier/go-toml"
if [ "${CIRCLE_BRANCH}" = "master" ]; then IMAGE_SHA_TAG="${IMAGE_NAME}:$CIRCLE_SHA1"
docker tag ${IMAGE_SHA_TAG} ${IMAGE_NAME}:latest if [ "${CIRCLE_BRANCH}" = "master" ]; then
docker push ${IMAGE_NAME}:latest docker login -u $DOCKER_USER -p $DOCKER_PASS
fi docker tag ${IMAGE_SHA_TAG} ${IMAGE_NAME}:latest
if [ "${CIRCLE_TAG}" != "" ]; then docker push ${IMAGE_NAME}:latest
docker tag ${IMAGE_SHA_TAG} ${IMAGE_NAME}:${CIRCLE_TAG} fi
docker push ${IMAGE_NAME}:${CIRCLE_TAG} if [ "${CIRCLE_TAG}" != "" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker tag ${IMAGE_SHA_TAG} ${IMAGE_NAME}:${CIRCLE_TAG}
docker push ${IMAGE_NAME}:${CIRCLE_TAG}
fi
else
echo "not pushing docker image for forked repo"
fi fi
workflows: workflows: