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

Commit cbd2878

Browse files
Test [deploy] to see the full flow.
1 parent 010f9fd commit cbd2878

File tree

3 files changed

+103
-65
lines changed

3 files changed

+103
-65
lines changed

.circleci/config.yml

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ jobs:
230230
export SELENIUM_VERSION=$(grep selenium-server Base/Dockerfile | sed 's/.*-\([^-]*\)\.jar \\/\1/' | head -n 1)
231231
echo "Prepare workflow environment variables"
232232
echo 'export BRANCH='$SELENIUM_VERSION >> $BASH_ENV
233-
#echo 'export BUILD_DATE=$(date '+%Y%m%d')' >> $BASH_ENV
234-
echo 'export BUILD_DATE=20230110' >> $BASH_ENV
233+
echo 'export BUILD_DATE=$(date '+%Y%m%d')' >> $BASH_ENV
234+
#echo 'export BUILD_DATE=20230110' >> $BASH_ENV
235235
echo 'export RELEASE_TAG="seleniarm-v`echo $BRANCH`-`echo $BUILD_DATE`"' >> $BASH_ENV
236236
source $BASH_ENV
237237
echo "Workflow environment variables:"
@@ -331,63 +331,63 @@ workflows:
331331

332332
deploy-multi-arch-full-grid:
333333
jobs:
334-
# - deploy-multi-arch-full-grid:
335-
# name: deploy-multi-arch-base
336-
# platforms: linux/arm64,linux/amd64,linux/arm/v7
337-
# build-args: --push
338-
# make-targets: base_multi
339-
# machine-type: ubuntu2004arm64large
340-
# filters:
341-
# branches:
342-
# only:
343-
# - full-grid
344-
# - deploy-multi-arch-full-grid:
345-
# name: deploy-multi-arch-full-grid
346-
# requires: [deploy-multi-arch-base]
347-
# platforms: linux/arm64,linux/amd64,linux/arm/v7
348-
# build-args: --push
349-
# make-targets: grid_multi
350-
# machine-type: ubuntu2004arm64
351-
# filters:
352-
# branches:
353-
# only:
354-
# - full-grid
355-
# - deploy-multi-arch-full-grid:
356-
# name: deploy-multi-arch-node-base
357-
# requires: [deploy-multi-arch-base]
358-
# platforms: linux/arm64,linux/amd64,linux/arm/v7
359-
# build-args: --push
360-
# make-targets: node_base_multi
361-
# machine-type: ubuntu2004arm64large
362-
# filters:
363-
# branches:
364-
# only:
365-
# - full-grid
366-
# - deploy-multi-arch-full-grid:
367-
# name: deploy-multi-arch-firefox
368-
# requires: [deploy-multi-arch-node-base]
369-
# platforms: linux/arm64,linux/amd64,linux/arm/v7
370-
# build-args: --push
371-
# make-targets: firefox_multi
372-
# machine-type: ubuntu2004arm64large
373-
# filters:
374-
# branches:
375-
# only:
376-
# - full-grid
377-
# - deploy-multi-arch-full-grid:
378-
# name: deploy-multi-arch-chromium
379-
# requires: [deploy-multi-arch-node-base]
380-
# platforms: linux/arm64,linux/amd64,linux/arm/v7
381-
# build-args: --push
382-
# make-targets: chromium_multi
383-
# machine-type: ubuntu2004arm64large
384-
# filters:
385-
# branches:
386-
# only:
387-
# - full-grid
334+
- deploy-multi-arch-full-grid:
335+
name: deploy-multi-arch-base
336+
platforms: linux/arm64,linux/amd64,linux/arm/v7
337+
build-args: --push
338+
make-targets: base_multi
339+
machine-type: ubuntu2004arm64large
340+
filters:
341+
branches:
342+
only:
343+
- full-grid
344+
- deploy-multi-arch-full-grid:
345+
name: deploy-multi-arch-full-grid
346+
requires: [deploy-multi-arch-base]
347+
platforms: linux/arm64,linux/amd64,linux/arm/v7
348+
build-args: --push
349+
make-targets: grid_multi
350+
machine-type: ubuntu2004arm64
351+
filters:
352+
branches:
353+
only:
354+
- full-grid
355+
- deploy-multi-arch-full-grid:
356+
name: deploy-multi-arch-node-base
357+
requires: [deploy-multi-arch-base]
358+
platforms: linux/arm64,linux/amd64,linux/arm/v7
359+
build-args: --push
360+
make-targets: node_base_multi
361+
machine-type: ubuntu2004arm64large
362+
filters:
363+
branches:
364+
only:
365+
- full-grid
366+
- deploy-multi-arch-full-grid:
367+
name: deploy-multi-arch-firefox
368+
requires: [deploy-multi-arch-node-base]
369+
platforms: linux/arm64,linux/amd64,linux/arm/v7
370+
build-args: --push
371+
make-targets: firefox_multi
372+
machine-type: ubuntu2004arm64large
373+
filters:
374+
branches:
375+
only:
376+
- full-grid
377+
- deploy-multi-arch-full-grid:
378+
name: deploy-multi-arch-chromium
379+
requires: [deploy-multi-arch-node-base]
380+
platforms: linux/arm64,linux/amd64,linux/arm/v7
381+
build-args: --push
382+
make-targets: chromium_multi
383+
machine-type: ubuntu2004arm64large
384+
filters:
385+
branches:
386+
only:
387+
- full-grid
388388
- deploy-multi-arch-full-grid:
389389
name: deploy-multi-arch-release-notes
390-
# requires: [deploy-multi-arch-firefox,deploy-multi-arch-chromium]
390+
requires: [deploy-multi-arch-firefox,deploy-multi-arch-chromium]
391391
platforms: linux/arm64,linux/amd64,linux/arm/v7
392392
build-args: --push
393393
make-targets: tag_and_push_multi_arch_browser_images

docker-add-related-tags.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ NO_PULL=$3
77

88
echo $NAMESPACE $IMAGE $TAG
99

10-
RELATED_TAGS=(`go run get-related-tags.go https://hub.docker.com/v2/repositories/$NAMESPACE/$IMAGE/tags/$TAG | tail -n 1`)
10+
RELATED_TAGS=(`go run get-all-related-tags.go https://hub.docker.com/v2/repositories/$NAMESPACE/$IMAGE/tags/$TAG | tail -n 1`)
1111

1212
for related_tag in "${RELATED_TAGS[@]}"
1313
do

get-related-tags.go renamed to get-all-related-tags.go

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"log"
88
"net/http"
99
"os"
10+
"strconv"
1011
"strings"
1112
)
1213

@@ -47,10 +48,21 @@ func main() {
4748
arch, tagDigest := getDigestForTag(url, inputArch)
4849
fmt.Println("getting related tags for " + arch + " digest = " + tagDigest)
4950

50-
allTagsUrl := getAllTagsUrl(url)
51-
relatedTags := getRelatedTagsFromDigest(allTagsUrl, tagDigest)
51+
var allTagsUrl string
52+
var theseRelatedTags []string
53+
var relatedTagsStr string
54+
55+
allTagsUrl = getAllTagsUrl(url)
56+
theseRelatedTags = getRelatedTagsFromDigest(allTagsUrl, tagDigest)
57+
relatedTagsStr = strings.Join(theseRelatedTags, " ")
58+
for next := true; next; next = (len(theseRelatedTags) != 0) {
59+
allTagsUrl = getAllTagsUrlForNextPage(allTagsUrl)
60+
theseRelatedTags = getRelatedTagsFromDigest(allTagsUrl, tagDigest)
61+
relatedTagsStr = relatedTagsStr + " " + strings.Join(theseRelatedTags, " ")
62+
// fmt.Println(theseRelatedTags)
63+
}
5264

53-
fmt.Println(strings.Join(relatedTags, " "))
65+
fmt.Println(relatedTagsStr)
5466
}
5567

5668
func getDigestForTag(url string, inputArch string) (string, string) {
@@ -87,8 +99,34 @@ func getDigestForTag(url string, inputArch string) (string, string) {
8799
return arch, digest
88100
}
89101

102+
func getAllTagsUrlForNextPage(specificTagUrl string) string {
103+
urlPathArr := strings.Split(specificTagUrl, "?")
104+
var pageNum string
105+
if len(urlPathArr) > 1 {
106+
pageKeyVal := strings.Split(urlPathArr[1], "=")
107+
pageNumInt, err := strconv.Atoi(pageKeyVal[1])
108+
if err != nil {
109+
log.Fatalln(err)
110+
}
111+
pageNum = "?page=" + strconv.Itoa(pageNumInt+1)
112+
} else {
113+
pageNum = "?page=1"
114+
}
115+
return urlPathArr[0] + pageNum
116+
}
117+
90118
func getAllTagsUrl(specificTagUrl string) string {
91-
urlArr := strings.Split(specificTagUrl, "/")
119+
urlPathArr := strings.Split(specificTagUrl, "?")
120+
var pageNum string
121+
if len(urlPathArr) > 1 {
122+
pageNum = "?" + urlPathArr[1]
123+
} else {
124+
pageNum = "?page=1"
125+
}
126+
127+
specificTagUrlWithoutPage := urlPathArr[0]
128+
urlArr := strings.Split(specificTagUrlWithoutPage, "/")
129+
// fmt.Println(urlArr[len(urlArr)-1])
92130
if urlArr[len(urlArr)-1] == "" {
93131
urlArr[len(urlArr)-1] = ""
94132
urlArr[len(urlArr)-2] = ""
@@ -97,7 +135,7 @@ func getAllTagsUrl(specificTagUrl string) string {
97135
}
98136
urlArr = urlArr[:len(urlArr)-1]
99137
allTagsUrl := strings.Join(urlArr, "/") // // https://hub.docker.com/v2/repositories/selenium/standalone-chrome/tags/
100-
return allTagsUrl
138+
return allTagsUrl + pageNum
101139
}
102140

103141
func getRelatedTagsFromDigest(allTagsUrl string, digest string) []string {
@@ -130,12 +168,12 @@ func getRelatedTagsFromDigest(allTagsUrl string, digest string) []string {
130168

131169
func showUsage() {
132170
fmt.Println(`Usage:
133-
get-related-tags TAG_URL [ARCH]
171+
get-all-related-tags TAG_URL [ARCH]
134172
135173
TAG_URL -> URL for a container image manifest (Required)
136174
ARCH -> Architecture to use to obtain sha256 (Optional)
137175
138176
Example Usage:
139-
$ get-related-tags https://hub.docker.com/v2/repositories/selenium/standalone-chrome/tags/latest/
177+
$ get-all-related-tags https://hub.docker.com/v2/repositories/selenium/standalone-chrome/tags/latest/
140178
`)
141179
}

0 commit comments

Comments
 (0)