diff --git a/.travis.yml b/.travis.yml index 74fcb4bcc..adcc5e2c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,3 +29,4 @@ script: - make image after_success: - make deploy +- make deploy-pr diff --git a/Makefile b/Makefile index 9e6a5d15d..8ca374210 100644 --- a/Makefile +++ b/Makefile @@ -85,5 +85,8 @@ fmt: deploy: ./script/deploy.sh +deploy-pr: + ./script/deploy-pr.sh + help: ## this help @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) diff --git a/script/deploy-pr.sh b/script/deploy-pr.sh new file mode 100755 index 000000000..7fd79407c --- /dev/null +++ b/script/deploy-pr.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -e + +if ([ "$TRAVIS_BRANCH" = "master" ] && [ -z "$TRAVIS_TAG" ]) && [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$DOCKER_VERSION" = "1.10.1" ]; then + echo "Deploying PR..." +else + echo "Skipping deploy PR" + exit 0 +fi + +COMMENT=$(git log -1 --pretty=%B) +PR=$(echo $COMMENT | grep -oP "Merge pull request #\K(([0-9]*))(?=.*)") + +if [ -z "$PR" ]; then + echo "Unable to get PR number: $PR from: $COMMENT" + exit 0 +fi + +# create docker image containous/traefik +echo "Updating docker containous/traefik image..." +docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS +docker tag containous/traefik containous/traefik:pr-${PR} +docker push containous/traefik:pr-${PR} + +echo "Deployed"