@@ -32,50 +32,68 @@ commands:
32
32
- run : sudo apt-get update
33
33
- run : git submodule sync
34
34
- run : git submodule update --init
35
- build-docker-and-maybe-push :
36
- parameters :
37
- push :
38
- description : whether to push created docker image after build
39
- type : boolean
40
- default : false
35
+ publish-docker-master-production :
41
36
steps :
42
- - checkout
43
- - setup_remote_docker :
44
- version : " 18.09.3"
45
- - run :
46
- name : Build Dev Docker image
47
- command : docker build -t ${IMAGE_NAME}-dev -f Dockerfile.dev .
48
37
- run :
49
38
name : Build Production Docker image
50
39
command : docker build -t $IMAGE_NAME -f Dockerfile .
51
- - when :
52
- condition : << parameters.push >>
53
- steps :
54
- - run :
55
- name : Publish Dev Docker Image to Docker Hub
56
- command : |
57
- echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
58
- tag_suffix=$(echo "$CIRCLE_SHA1" | cut -c 1-8)
59
- ./scripts/push-docker-tags.sh "${IMAGE_NAME}-dev" "$CIRCLE_SHA1" "${CIRCLE_BRANCH}-${tag_suffix}-dev"
60
- - run :
61
- name : Publish Production Docker Image to Docker Hub
62
- command : |
63
- echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
64
- tag_suffix=$(echo "$CIRCLE_SHA1" | cut -c 1-8)
65
- ./scripts/push-docker-tags.sh "${IMAGE_NAME}-dev" "$CIRCLE_SHA1" "${CIRCLE_BRANCH}-${tag_suffix}"
66
- when : always
40
+ - run :
41
+ name : Publish Production Docker Image to Docker Hub
42
+ command : |
43
+ echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
44
+ tag_suffix=$(echo "$CIRCLE_SHA1" | cut -c 1-8)
45
+ ./scripts/push-docker-tags.sh "${IMAGE_NAME}" "$CIRCLE_SHA1" "${CIRCLE_BRANCH}-${tag_suffix}"
46
+ publish-docker-master-dev :
47
+ steps :
48
+ - run :
49
+ name : Build Dev Docker image
50
+ command : docker build -t ${IMAGE_NAME} -f Dockerfile.dev .
51
+ - run :
52
+ name : Publish Dev Docker Image to Docker Hub
53
+ command : |
54
+ echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
55
+ tag_suffix=$(echo "$CIRCLE_SHA1" | cut -c 1-8)
56
+ ./scripts/push-docker-tags.sh "${IMAGE_NAME}" "$CIRCLE_SHA1" "${CIRCLE_BRANCH}-${tag_suffix}-dev"
57
+ publish-docker-semver-production :
58
+ steps :
59
+ - run :
60
+ name : Build Production Semver Docker image
61
+ command : docker build -t ${IMAGE_NAME} -f Dockerfile .
62
+ - run :
63
+ name : Publish Production Semver Docker Image to Docker Hub
64
+ command : |
65
+ echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
66
+ ./scripts/push-docker-tags.sh "${IMAGE_NAME}" "$CIRCLE_SHA1" "${CIRCLE_TAG}"
67
+ publish-docker-semver-dev :
68
+ steps :
69
+ - run :
70
+ name : Build Dev Semver Docker image
71
+ command : docker build -t ${IMAGE_NAME} -f Dockerfile.dev .
72
+ - run :
73
+ name : Publish Dev Semver Docker Image to Docker Hub
74
+ command : |
75
+ echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
76
+ ./scripts/push-docker-tags.sh "${IMAGE_NAME}" "$CIRCLE_SHA1" "${CIRCLE_TAG}-dev"
67
77
68
78
jobs :
69
- build-push -master :
79
+ publish-docker-from -master :
70
80
executor : dockerizer
71
81
steps :
72
- - build-docker-and-maybe-push :
73
- push : true
74
- build-push-semver-tag :
82
+ - checkout
83
+ - setup_remote_docker :
84
+ docker_layer_caching : true
85
+ version : " 18.09.3"
86
+ - publish-docker-master-dev
87
+ - publish-docker-master-production
88
+ publish-docker-from-tag :
75
89
executor : dockerizer
76
90
steps :
77
- - build-docker-and-maybe-push :
78
- push : true
91
+ - checkout
92
+ - setup_remote_docker :
93
+ docker_layer_caching : true
94
+ version : " 18.09.3"
95
+ - publish-docker-semver-dev
96
+ - publish-docker-semver-production
79
97
mod-tidy-check :
80
98
executor : golang
81
99
steps :
@@ -124,18 +142,18 @@ workflows:
124
142
jobs :
125
143
- mod-tidy-check
126
144
- test
127
- docker-and-deploy :
145
+ build- docker-images :
128
146
# `build-push-*` runs on master or main branches and tags that look like semver
129
147
# see: https://circleci.com/docs/2.0/workflows/#executing-workflows-for-a-git-tag
130
148
jobs :
131
- - build-push -master :
149
+ - publish-docker-from -master :
132
150
# build and push latest master docker image
133
151
filters :
134
152
branches :
135
153
only : /^(master|main)$/
136
154
tags :
137
155
ignore : /.*/
138
- - build-push-semver -tag :
156
+ - publish-docker-from -tag :
139
157
# build and push semver tags docker image
140
158
filters :
141
159
branches :
0 commit comments