Skip to content
This repository was archived by the owner on Jun 22, 2024. It is now read-only.

Commit 018bb2f

Browse files
Merge branch 'docker-tags' into trunk
2 parents cc94298 + 0a2d0fa commit 018bb2f

File tree

3 files changed

+135
-0
lines changed

3 files changed

+135
-0
lines changed

.circleci/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ jobs:
160160
docker buildx ls
161161
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
162162
NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PLATFORMS=${PLATFORMS} BUILD_ARGS=${BUILD_ARGS} make build_multi
163+
- run:
164+
name: "Tag browser images and update latest tag"
165+
command: |
166+
NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PUSH_IMAGE=true make tag_and_push_multi_arch_browser_images
167+
NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make tag_multi_arch_latest
163168
- run:
164169
name: "Generate release notes"
165170
command: |

Makefile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,24 @@ tag_latest:
240240
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
241241
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
242242

243+
# Additional tags for browser images
244+
tag_and_push_multi_arch_browser_images: tag_and_push_multi_arch_chromium_images tag_and_push_multi_arch_firefox_images
245+
246+
tag_and_push_multi_arch_chromium_images:
247+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chromium
248+
249+
tag_and_push_multi_arch_firefox_images:
250+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox
251+
252+
tag_multi_arch_latest:
253+
docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest
254+
docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest
255+
docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:latest
256+
docker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:latest
257+
docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:latest
258+
docker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:latest
259+
docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:latest
260+
243261
release_latest:
244262
docker push $(NAME)/base:latest
245263
docker push $(NAME)/hub:latest
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#!/usr/bin/env bash
2+
3+
VERSION=$1
4+
BUILD_DATE=$2
5+
NAMESPACE=$3
6+
PUSH_IMAGE="${4:-false}"
7+
BROWSER=$5
8+
9+
TAG_VERSION=${VERSION}-${BUILD_DATE}
10+
11+
function short_version() {
12+
local __long_version=$1
13+
local __version_split=( ${__long_version//./ } )
14+
echo "${__version_split[0]}.${__version_split[1]}"
15+
}
16+
17+
18+
echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}"
19+
20+
case "${BROWSER}" in
21+
22+
chromium)
23+
CHROMIUM_VERSION=$(docker run --rm seleniarm/node-chromium:${TAG_VERSION} chromium --version | awk '{print $2}')
24+
echo "Chromium version -> "${CHROMIUM_VERSION}
25+
CHROME_SHORT_VERSION="$(short_version ${CHROMIUM_VERSION})"
26+
echo "Short Chromium version -> "${CHROME_SHORT_VERSION}
27+
28+
CHROMEDRIVER_VERSION=$(docker run --rm seleniarm/node-chromium:${TAG_VERSION} chromedriver --version | awk '{print $2}')
29+
echo "ChromeDriver version -> "${CHROMEDRIVER_VERSION}
30+
CHROMEDRIVER_SHORT_VERSION="$(short_version ${CHROMEDRIVER_VERSION})"
31+
echo "Short ChromeDriver version -> "${CHROMEDRIVER_SHORT_VERSION}
32+
33+
CHROME_TAGS=(
34+
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}
35+
# Browser version and browser driver version plus build date
36+
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}
37+
# Browser version and browser driver version
38+
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}
39+
# Browser version and build date
40+
${CHROMIUM_VERSION}-${BUILD_DATE}
41+
# Browser version
42+
${CHROMIUM_VERSION}
43+
## Short versions
44+
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}
45+
# Browser version and browser driver version plus build date
46+
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}
47+
# Browser version and browser driver version
48+
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}
49+
# Browser version and build date
50+
${CHROME_SHORT_VERSION}-${BUILD_DATE}
51+
# Browser version
52+
${CHROME_SHORT_VERSION}
53+
)
54+
55+
for chrome_tag in "${CHROME_TAGS[@]}"
56+
do
57+
docker tag ${NAMESPACE}/node-chromium:${TAG_VERSION} ${NAMESPACE}/node-chromium:${chrome_tag}
58+
docker tag ${NAMESPACE}/standalone-chromium:${TAG_VERSION} ${NAMESPACE}/standalone-chromium:${chrome_tag}
59+
if [ "${PUSH_IMAGE}" = true ]; then
60+
docker push ${NAMESPACE}/node-chromium:${chrome_tag}
61+
docker push ${NAMESPACE}/standalone-chromium:${chrome_tag}
62+
fi
63+
done
64+
65+
;;
66+
firefox)
67+
FIREFOX_VERSION=$(docker run --rm seleniarm/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}')
68+
echo "Firefox version -> "${FIREFOX_VERSION}
69+
FIREFOX_SHORT_VERSION="$(short_version ${FIREFOX_VERSION})"
70+
echo "Short Firefox version -> "${FIREFOX_SHORT_VERSION}
71+
GECKODRIVER_VERSION=$(docker run --rm seleniarm/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}')
72+
echo "GeckoDriver version -> "${GECKODRIVER_VERSION}
73+
GECKODRIVER_SHORT_VERSION="$(short_version ${GECKODRIVER_VERSION})"
74+
echo "Short GeckoDriver version -> "${GECKODRIVER_SHORT_VERSION}
75+
76+
FIREFOX_TAGS=(
77+
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}
78+
# Browser version and browser driver version plus build date
79+
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-${BUILD_DATE}
80+
# Browser version and browser driver version
81+
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}
82+
# Browser version and build date
83+
${FIREFOX_VERSION}-${BUILD_DATE}
84+
# Browser version
85+
${FIREFOX_VERSION}
86+
## Short versions
87+
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-grid-${TAG_VERSION}
88+
# Browser version and browser driver version plus build date
89+
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-${BUILD_DATE}
90+
# Browser version and browser driver version
91+
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}
92+
# Browser version and build date
93+
${FIREFOX_SHORT_VERSION}-${BUILD_DATE}
94+
# Browser version
95+
${FIREFOX_SHORT_VERSION}
96+
)
97+
98+
for firefox_tag in "${FIREFOX_TAGS[@]}"
99+
do
100+
docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} ${NAMESPACE}/node-firefox:${firefox_tag}
101+
docker tag ${NAMESPACE}/standalone-firefox:${TAG_VERSION} ${NAMESPACE}/standalone-firefox:${firefox_tag}
102+
if [ "${PUSH_IMAGE}" = true ]; then
103+
docker push ${NAMESPACE}/node-firefox:${firefox_tag}
104+
docker push ${NAMESPACE}/standalone-firefox:${firefox_tag}
105+
fi
106+
done
107+
108+
;;
109+
*)
110+
echo "Unknown browser!"
111+
;;
112+
esac

0 commit comments

Comments
 (0)