@@ -58,20 +58,27 @@ save_images() {
58
58
fi
59
59
60
60
export GORELEASER_CURRENT_TAG=${IMAGE_TAG}
61
- goreleaser release --clean --snapshot --skip-publish
61
+
62
+ GORELEASER_FILE=" $( prepare_goreleaser) "
63
+ goreleaser release --clean --snapshot --skip-publish --config=" ${GORELEASER_FILE} "
62
64
63
65
mkdir -p " ${IMAGE_SAVE_LOAD_DIR} "
64
66
65
67
# Save images
66
- IMAGE_FILE_NAME_PREFIX=$( echo " ${IMAGE_REPOSITORY} " | tr " /" " -" )
67
- docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -amd64.tar
68
- docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -arm64.tar
69
- docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -armv7.tar
70
-
71
- CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX=$( echo " ${CFG_EXPORTER_IMAGE_REPOSITORY} " | tr " /" " -" )
72
- docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -amd64.tar
73
- docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -arm64.tar
74
- docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -armv7.tar
68
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-agent," * ]]; then
69
+ IMAGE_FILE_NAME_PREFIX=$( echo " ${IMAGE_REPOSITORY} " | tr " /" " -" )
70
+ docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -amd64.tar
71
+ docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -arm64.tar
72
+ docker save ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7 > ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -armv7.tar
73
+ fi
74
+
75
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-config-exporter," * ]]; then
76
+ CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX=$( echo " ${CFG_EXPORTER_IMAGE_REPOSITORY} " | tr " /" " -" )
77
+ docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -amd64.tar
78
+ docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -arm64.tar
79
+ docker save ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7 > ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -armv7.tar
80
+ fi
81
+
75
82
}
76
83
77
84
load_and_push_images () {
@@ -84,37 +91,49 @@ load_and_push_images() {
84
91
export GORELEASER_CURRENT_TAG=${IMAGE_TAG}
85
92
86
93
# Load images
87
- IMAGE_FILE_NAME_PREFIX=$( echo " ${IMAGE_REPOSITORY} " | tr " /" " -" )
88
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -amd64.tar
89
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -arm64.tar
90
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -armv7.tar
94
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-agent," * ]]; then
95
+ IMAGE_FILE_NAME_PREFIX=$( echo " ${IMAGE_REPOSITORY} " | tr " /" " -" )
96
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -amd64.tar
97
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -arm64.tar
98
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${IMAGE_FILE_NAME_PREFIX} -armv7.tar
99
+ fi
91
100
92
- CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX=$( echo " ${CFG_EXPORTER_IMAGE_REPOSITORY} " | tr " /" " -" )
93
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -amd64.tar
94
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -arm64.tar
95
- docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -armv7.tar
101
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-config-exporter," * ]]; then
102
+ CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX=$( echo " ${CFG_EXPORTER_IMAGE_REPOSITORY} " | tr " /" " -" )
103
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -amd64.tar
104
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -arm64.tar
105
+ docker load --input ${IMAGE_SAVE_LOAD_DIR} /${CFG_EXPORTER_IMAGE_FILE_NAME_PREFIX} -armv7.tar
106
+ fi
96
107
97
108
# Push images
98
- docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64
99
- docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64
100
- docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
109
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-agent," * ]]; then
110
+ docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64
111
+ docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64
112
+ docker push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
113
+ fi
101
114
102
- docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64
103
- docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64
104
- docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
115
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-config-exporter," * ]]; then
116
+ docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64
117
+ docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64
118
+ docker push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
119
+ fi
105
120
106
121
# Create manifest
107
- docker manifest create ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} \
108
- --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 \
109
- --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 \
110
- --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
111
- docker manifest push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG}
122
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-agent," * ]]; then
123
+ docker manifest create ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} \
124
+ --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 \
125
+ --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 \
126
+ --amend ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
127
+ docker manifest push ${IMAGE_REGISTRY} /${IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG}
128
+ fi
112
129
113
- docker manifest create ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} \
114
- --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 \
115
- --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 \
116
- --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
117
- docker manifest push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG}
130
+ if [[ -z " $BUILD_TARGETS " || " ,$BUILD_TARGETS ," == * " ,botkube-config-exporter," * ]]; then
131
+ docker manifest create ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} \
132
+ --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -amd64 \
133
+ --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -arm64 \
134
+ --amend ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG} -armv7
135
+ docker manifest push ${IMAGE_REGISTRY} /${CFG_EXPORTER_IMAGE_REPOSITORY} :${GORELEASER_CURRENT_TAG}
136
+ fi
118
137
}
119
138
120
139
build () {
@@ -152,6 +171,65 @@ build_plugins_single() {
152
171
eval " $command "
153
172
}
154
173
174
+ prepare_goreleaser () {
175
+ if [ -z " ${BUILD_TARGETS} " ]; then
176
+ echo " .goreleaser.yml"
177
+ exit 0
178
+ fi
179
+
180
+ cp .goreleaser.yml .goreleaser_temp.yaml
181
+
182
+ # Filter the builds section
183
+ for build_id in $( yq e ' .builds[].id' .goreleaser_temp.yaml) ; do
184
+ if [[ ! " ,$BUILD_TARGETS ," == * " ,$build_id ," * ]]; then
185
+ yq e " del(.builds[] | select(.id == \" $build_id \" ))" -i .goreleaser_temp.yaml
186
+ fi
187
+ done
188
+
189
+ # Filter the dockers section
190
+ for docker_id in $( yq e ' .dockers[].id' .goreleaser_temp.yaml) ; do
191
+ build_name=$( echo " $docker_id " | rev | cut -d' -' -f2- | rev)
192
+ if [[ ! " ,$BUILD_TARGETS ," == * " ,$build_name ," * ]]; then
193
+ yq e " del(.dockers[] | select(.id == \" $docker_id \" ))" -i .goreleaser_temp.yaml
194
+ fi
195
+ done
196
+
197
+ # Filter the archives section
198
+ for archive_id in $( yq e ' .archives[].id' .goreleaser_temp.yaml) ; do
199
+ if [[ ! " ,$BUILD_TARGETS ," == * " ,$archive_id ," * ]]; then
200
+ yq e " del(.archives[] | select(.id == \" $archive_id \" ))" -i .goreleaser_temp.yaml
201
+ fi
202
+ done
203
+
204
+ # Filter the brews section
205
+ DEFAULT_BREW_NAME=" botkube"
206
+ BOTKUBE_CLI_ID=" botkube-cli"
207
+ if [[ ! " ,$BUILD_TARGETS ," == * " ,$BOTKUBE_CLI_ID ," * ]]; then
208
+ yq e " del(.brews[] | select(.name == \" $DEFAULT_BREW_NAME \" ))" -i .goreleaser_temp.yaml
209
+ fi
210
+
211
+ if [[ " ${SINGLE_PLATFORM} " == " true" ]]; then
212
+ CURRENT_OS=$( go env GOOS)
213
+ CURRENT_ARCH=$( go env GOARCH)
214
+
215
+ # Remove the goarm from the YAML file if it's not Darwin
216
+ if [ " $CURRENT_OS " != " darwin" ]; then
217
+ yq eval ' del(.builds[].goos[] | select(. == "darwin"))' .goreleaser_temp.yaml -i
218
+ yq eval ' del(.builds[].goarm)' .goreleaser_temp.yaml -i
219
+ fi
220
+
221
+ if [ -n " $CURRENT_OS " ]; then
222
+ yq eval " del(.builds[].goos[] | select(. == \" $CURRENT_OS \" ))" .goreleaser_temp.yaml -i
223
+ fi
224
+
225
+ if [ -n " $CURRENT_ARCH " ]; then
226
+ yq eval " del(.builds[].goarch[] | select(. == \" $CURRENT_ARCH \" ))" .goreleaser_temp.yaml -i
227
+ fi
228
+ fi
229
+
230
+ echo " .goreleaser_temp.yaml"
231
+ }
232
+
155
233
build_single () {
156
234
export IMAGE_TAG=v9.99.9-dev
157
235
docker run --rm --privileged \
0 commit comments