forked from SeleniumHQ/docker-selenium
/
tag_and_push_multi-arch_browser_images.sh
executable file
·126 lines (112 loc) · 5.25 KB
/
tag_and_push_multi-arch_browser_images.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env bash
VERSION=$1
BUILD_DATE=$2
NAMESPACE=$3
PUSH_IMAGE="${4:-false}"
BROWSER=$5
TAG_VERSION=${VERSION}-${BUILD_DATE}
function short_version() {
local __long_version=$1
local __version_split=( ${__long_version//./ } )
echo "${__version_split[0]}.${__version_split[1]}"
}
MAJOR=$(cut -d. -f1 <<<"${VERSION}")
MAJOR_MINOR=$(cut -d. -f1-2 <<<"${VERSION}")
echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}"
case "${BROWSER}" in
chromium)
CHROMIUM_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromium --version | awk '{print $2}')
echo "Chromium version -> "${CHROMIUM_VERSION}
CHROME_SHORT_VERSION="$(short_version ${CHROMIUM_VERSION})"
echo "Short Chromium version -> "${CHROME_SHORT_VERSION}
CHROMEDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromedriver --version | awk '{print $2}')
echo "ChromeDriver version -> "${CHROMEDRIVER_VERSION}
CHROMEDRIVER_SHORT_VERSION="$(short_version ${CHROMEDRIVER_VERSION})"
echo "Short ChromeDriver version -> "${CHROMEDRIVER_SHORT_VERSION}
CHROME_TAGS=(
# Major Selenium version (X)
${MAJOR}
# Major-minor Selenium version (X.Y)
${MAJOR_MINOR}
# Full Selenium version (X.Y.X)
${VERSION}
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}
# Browser version and browser driver version plus build date
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}
# Browser version and browser driver version
${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}
# Browser version and build date
${CHROMIUM_VERSION}-${BUILD_DATE}
# Browser version
${CHROMIUM_VERSION}
## Short versions
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}
# Browser version and browser driver version plus build date
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}
# Browser version and browser driver version
${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}
# Browser version and build date
${CHROME_SHORT_VERSION}-${BUILD_DATE}
# Browser version
${CHROME_SHORT_VERSION}
)
for chrome_tag in "${CHROME_TAGS[@]}"
do
if [ "${PUSH_IMAGE}" = true ]; then
docker buildx imagetools create -t ${NAMESPACE}/node-chromium:${chrome_tag} ${NAMESPACE}/node-chromium:${TAG_VERSION}
docker buildx imagetools create -t ${NAMESPACE}/standalone-chromium:${chrome_tag} ${NAMESPACE}/standalone-chromium:${TAG_VERSION}
#sh tag-and-push-multi-arch-image.sh $VERSION $BUILD_DATE $NAMESPACE node-chromium ${chrome_tag}
#sh tag-and-push-multi-arch-image.sh $VERSION $BUILD_DATE $NAMESPACE standalone-chromium ${chrome_tag}
fi
done
;;
firefox)
FIREFOX_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}')
echo "Firefox version -> "${FIREFOX_VERSION}
FIREFOX_SHORT_VERSION="$(short_version ${FIREFOX_VERSION})"
echo "Short Firefox version -> "${FIREFOX_SHORT_VERSION}
GECKODRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}')
echo "GeckoDriver version -> "${GECKODRIVER_VERSION}
GECKODRIVER_SHORT_VERSION="$(short_version ${GECKODRIVER_VERSION})"
echo "Short GeckoDriver version -> "${GECKODRIVER_SHORT_VERSION}
FIREFOX_TAGS=(
# Major Selenium version (X)
${MAJOR}
# Major-minor Selenium version (X.Y)
${MAJOR_MINOR}
# Full Selenium version (X.Y.X)
${VERSION}
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}
# Browser version and browser driver version plus build date
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-${BUILD_DATE}
# Browser version and browser driver version
${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}
# Browser version and build date
${FIREFOX_VERSION}-${BUILD_DATE}
# Browser version
${FIREFOX_VERSION}
## Short versions
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-grid-${TAG_VERSION}
# Browser version and browser driver version plus build date
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-${BUILD_DATE}
# Browser version and browser driver version
${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}
# Browser version and build date
${FIREFOX_SHORT_VERSION}-${BUILD_DATE}
# Browser version
${FIREFOX_SHORT_VERSION}
)
for firefox_tag in "${FIREFOX_TAGS[@]}"
do
if [ "${PUSH_IMAGE}" = true ]; then
docker buildx imagetools create -t ${NAMESPACE}/node-firefox:${firefox_tag} ${NAMESPACE}/node-firefox:${TAG_VERSION}
docker buildx imagetools create -t ${NAMESPACE}/standalone-firefox:${firefox_tag} ${NAMESPACE}/standalone-firefox:${TAG_VERSION}
#sh tag-and-push-multi-arch-image.sh $VERSION $BUILD_DATE $NAMESPACE node-firefox ${firefox_tag}
#sh tag-and-push-multi-arch-image.sh $VERSION $BUILD_DATE $NAMESPACE standalone-firefox ${firefox_tag}
fi
done
;;
*)
echo "Unknown browser!"
;;
esac