1
1
#! /bin/bash
2
2
3
3
#
4
- # Build and push new image to Docker hub.
4
+ # Build and optionally push new image to Docker hub.
5
5
#
6
- # Uses the following Travis secure variables:
6
+ # When pushing, this script uses the following Travis secure variables:
7
7
# - DOCKER_USERNAME
8
8
# - DOCKER_PASSWORD
9
9
#
13
13
set -x
14
14
set -e
15
15
16
- # Travis can only work on master since it needs encrypted variables.
17
- if [ " ${TRAVIS_PULL_REQUEST} " != " false" ]; then
18
- echo " Not building docker image for pull requests"
19
- exit 0
16
+ if [[ -n $TRAVIS_TAG ]]; then
17
+ VERSION=" $TRAVIS_TAG "
18
+ VERSION_SHORT=$( echo $VERSION | cut -d. -f1,2 )
19
+ else
20
+ VERSION=" latest"
21
+ VERSION_SHORT=" latest"
20
22
fi
21
23
22
- # Allow Docker builds for release builds only.
23
- if [[ -z $TRAVIS_TAG ]]; then
24
- echo " TRAVIS_TAG is empty"
25
- exit 0
26
- fi
27
-
28
- if [[ -z $DOCKER_USERNAME ]]; then
29
- echo " DOCKER_USERNAME is empty"
30
- exit 1
31
- fi
32
-
33
- if [[ -z $DOCKER_PASSWORD ]]; then
34
- echo " DOCKER_PASSWORD is empty"
35
- exit 1
36
- fi
37
-
38
- VERSION=" $TRAVIS_TAG "
39
- VERSION_SHORT=$( echo $VERSION | cut -d. -f1,2 )
40
-
41
24
if [[ -z $VERSION ]]; then
42
25
echo " empty VERSION"
43
26
exit 1
@@ -61,6 +44,34 @@ docker build \
61
44
docker run -d opengrok/docker
62
45
docker ps -a
63
46
47
+ # Travis can only work on master since it needs encrypted variables.
48
+ if [ " ${TRAVIS_PULL_REQUEST} " != " false" ]; then
49
+ echo " Not publishing docker image for pull requests"
50
+ exit 0
51
+ fi
52
+
53
+ # The push only works on the main repository.
54
+ if [[ " ${TRAVIS_REPO_SLUG} " != " oracle/opengrok" ]]; then
55
+ echo " Not publishing docker image for non main repository"
56
+ exit 0
57
+ fi
58
+
59
+ # Allow Docker publish for release builds only.
60
+ if [[ -z $TRAVIS_TAG ]]; then
61
+ echo " TRAVIS_TAG is empty"
62
+ exit 0
63
+ fi
64
+
65
+ if [[ -z $DOCKER_USERNAME ]]; then
66
+ echo " DOCKER_USERNAME is empty"
67
+ exit 1
68
+ fi
69
+
70
+ if [[ -z $DOCKER_PASSWORD ]]; then
71
+ echo " DOCKER_PASSWORD is empty"
72
+ exit 1
73
+ fi
74
+
64
75
# Publish the image to Docker hub.
65
76
if [ -n " $DOCKER_PASSWORD " -a -n " $DOCKER_USERNAME " -a -n " $VERSION " ]; then
66
77
echo " Logging into docker"
0 commit comments