From 198cea732a355deebc870174be0297ce747ebbc2 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Sun, 19 Jul 2020 23:54:21 +0200 Subject: [PATCH 01/11] Generating date automatically --- Makefile | 212 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 107 insertions(+), 105 deletions(-) diff --git a/Makefile b/Makefile index 6d1bce80ff..a6e9c24665 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,14 @@ NAME := $(or $(NAME),$(NAME),selenium) -VERSION := $(or $(VERSION),$(VERSION),4.0.0-alpha-6-20200609) +BUILD_DATE := $(shell date '+%Y%m%d') +VERSION := $(or $(VERSION),$(VERSION),4.0.0-alpha-6) +TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) AUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ) PLATFORM := $(shell uname -s) BUILD_ARGS := $(BUILD_ARGS) -MAJOR := $(word 1,$(subst ., ,$(VERSION))) -MINOR := $(word 2,$(subst ., ,$(VERSION))) -MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(VERSION))) +MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION))) +MINOR := $(word 2,$(subst ., ,$(TAG_VERSION))) +MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION))) all: hub distributor router sessions chrome firefox opera standalone_chrome standalone_firefox standalone_opera @@ -28,87 +30,87 @@ build: all ci: build test base: - cd ./Base && docker build $(BUILD_ARGS) -t $(NAME)/base:$(VERSION) . + cd ./Base && docker build $(BUILD_ARGS) -t $(NAME)/base:$(TAG_VERSION) . generate_hub: - cd ./Hub && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Hub && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) hub: base generate_hub - cd ./Hub && docker build $(BUILD_ARGS) -t $(NAME)/hub:$(VERSION) . + cd ./Hub && docker build $(BUILD_ARGS) -t $(NAME)/hub:$(TAG_VERSION) . generate_distributor: - cd ./Distributor && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Distributor && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) distributor: base generate_distributor - cd ./Distributor && docker build $(BUILD_ARGS) -t $(NAME)/distributor:$(VERSION) . + cd ./Distributor && docker build $(BUILD_ARGS) -t $(NAME)/distributor:$(TAG_VERSION) . generate_router: - cd ./Router && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Router && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) router: base generate_router - cd ./Router && docker build $(BUILD_ARGS) -t $(NAME)/router:$(VERSION) . + cd ./Router && docker build $(BUILD_ARGS) -t $(NAME)/router:$(TAG_VERSION) . generate_sessions: - cd ./Sessions && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Sessions && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) sessions: base generate_sessions - cd ./Sessions && docker build $(BUILD_ARGS) -t $(NAME)/sessions:$(VERSION) . + cd ./Sessions && docker build $(BUILD_ARGS) -t $(NAME)/sessions:$(TAG_VERSION) . generate_node_base: - cd ./NodeBase && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./NodeBase && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) node_base: base generate_node_base - cd ./NodeBase && docker build $(BUILD_ARGS) -t $(NAME)/node-base:$(VERSION) . + cd ./NodeBase && docker build $(BUILD_ARGS) -t $(NAME)/node-base:$(TAG_VERSION) . generate_chrome: - cd ./NodeChrome && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./NodeChrome && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) chrome: node_base generate_chrome - cd ./NodeChrome && docker build $(BUILD_ARGS) -t $(NAME)/node-chrome:$(VERSION) . + cd ./NodeChrome && docker build $(BUILD_ARGS) -t $(NAME)/node-chrome:$(TAG_VERSION) . generate_firefox: - cd ./NodeFirefox && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./NodeFirefox && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) firefox: node_base generate_firefox - cd ./NodeFirefox && docker build $(BUILD_ARGS) -t $(NAME)/node-firefox:$(VERSION) . + cd ./NodeFirefox && docker build $(BUILD_ARGS) -t $(NAME)/node-firefox:$(TAG_VERSION) . generate_opera: - cd ./NodeOpera && ./generate.sh $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./NodeOpera && ./generate.sh $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) opera: node_base generate_opera - cd ./NodeOpera && docker build $(BUILD_ARGS) -t $(NAME)/node-opera:$(VERSION) . + cd ./NodeOpera && docker build $(BUILD_ARGS) -t $(NAME)/node-opera:$(TAG_VERSION) . generate_standalone_firefox: - cd ./Standalone && ./generate.sh StandaloneFirefox node-firefox Firefox $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Standalone && ./generate.sh StandaloneFirefox node-firefox Firefox $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) standalone_firefox: firefox generate_standalone_firefox - cd ./StandaloneFirefox && docker build $(BUILD_ARGS) -t $(NAME)/standalone-firefox:$(VERSION) . + cd ./StandaloneFirefox && docker build $(BUILD_ARGS) -t $(NAME)/standalone-firefox:$(TAG_VERSION) . generate_standalone_chrome: - cd ./Standalone && ./generate.sh StandaloneChrome node-chrome Chrome $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Standalone && ./generate.sh StandaloneChrome node-chrome Chrome $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) standalone_chrome: chrome generate_standalone_chrome - cd ./StandaloneChrome && docker build $(BUILD_ARGS) -t $(NAME)/standalone-chrome:$(VERSION) . + cd ./StandaloneChrome && docker build $(BUILD_ARGS) -t $(NAME)/standalone-chrome:$(TAG_VERSION) . generate_standalone_opera: - cd ./Standalone && ./generate.sh StandaloneOpera node-opera Opera $(VERSION) $(NAMESPACE) $(AUTHORS) + cd ./Standalone && ./generate.sh StandaloneOpera node-opera Opera $(TAG_VERSION) $(NAMESPACE) $(AUTHORS) standalone_opera: opera generate_standalone_opera - cd ./StandaloneOpera && docker build $(BUILD_ARGS) -t $(NAME)/standalone-opera:$(VERSION) . + cd ./StandaloneOpera && docker build $(BUILD_ARGS) -t $(NAME)/standalone-opera:$(TAG_VERSION) . tag_latest: - docker tag $(NAME)/base:$(VERSION) $(NAME)/base:latest - docker tag $(NAME)/hub:$(VERSION) $(NAME)/hub:latest - docker tag $(NAME)/distributor:$(VERSION) $(NAME)/distributor:latest - docker tag $(NAME)/router:$(VERSION) $(NAME)/router:latest - docker tag $(NAME)/sessions:$(VERSION) $(NAME)/sessions:latest - docker tag $(NAME)/node-base:$(VERSION) $(NAME)/node-base:latest - docker tag $(NAME)/node-chrome:$(VERSION) $(NAME)/node-chrome:latest - docker tag $(NAME)/node-firefox:$(VERSION) $(NAME)/node-firefox:latest - docker tag $(NAME)/node-opera:$(VERSION) $(NAME)/node-opera:latest - docker tag $(NAME)/standalone-chrome:$(VERSION) $(NAME)/standalone-chrome:latest - docker tag $(NAME)/standalone-firefox:$(VERSION) $(NAME)/standalone-firefox:latest - docker tag $(NAME)/standalone-opera:$(VERSION) $(NAME)/standalone-opera:latest + docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest + docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest + docker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:latest + docker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:latest + docker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:latest + docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:latest + docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:latest + docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:latest + docker tag $(NAME)/node-opera:$(TAG_VERSION) $(NAME)/node-opera:latest + docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:latest + docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:latest + docker tag $(NAME)/standalone-opera:$(TAG_VERSION) $(NAME)/standalone-opera:latest release_latest: docker push $(NAME)/base:latest @@ -125,68 +127,68 @@ release_latest: docker push $(NAME)/standalone-opera:latest tag_major_minor: - docker tag $(NAME)/base:$(VERSION) $(NAME)/base:$(MAJOR) - docker tag $(NAME)/hub:$(VERSION) $(NAME)/hub:$(MAJOR) - docker tag $(NAME)/distributor:$(VERSION) $(NAME)/distributor:$(MAJOR) - docker tag $(NAME)/router:$(VERSION) $(NAME)/router:$(MAJOR) - docker tag $(NAME)/sessions:$(VERSION) $(NAME)/sessions:$(MAJOR) - docker tag $(NAME)/node-base:$(VERSION) $(NAME)/node-base:$(MAJOR) - docker tag $(NAME)/node-chrome:$(VERSION) $(NAME)/node-chrome:$(MAJOR) - docker tag $(NAME)/node-firefox:$(VERSION) $(NAME)/node-firefox:$(MAJOR) - docker tag $(NAME)/node-opera:$(VERSION) $(NAME)/node-opera:$(MAJOR) - docker tag $(NAME)/standalone-chrome:$(VERSION) $(NAME)/standalone-chrome:$(MAJOR) - docker tag $(NAME)/standalone-firefox:$(VERSION) $(NAME)/standalone-firefox:$(MAJOR) - docker tag $(NAME)/standalone-opera:$(VERSION) $(NAME)/standalone-opera:$(MAJOR) - docker tag $(NAME)/base:$(VERSION) $(NAME)/base:$(MAJOR).$(MINOR) - docker tag $(NAME)/hub:$(VERSION) $(NAME)/hub:$(MAJOR).$(MINOR) - docker tag $(NAME)/distributor:$(VERSION) $(NAME)/distributor:$(MAJOR).$(MINOR) - docker tag $(NAME)/router:$(VERSION) $(NAME)/router:$(MAJOR).$(MINOR) - docker tag $(NAME)/sessions:$(VERSION) $(NAME)/sessions:$(MAJOR).$(MINOR) - docker tag $(NAME)/node-base:$(VERSION) $(NAME)/node-base:$(MAJOR).$(MINOR) - docker tag $(NAME)/node-chrome:$(VERSION) $(NAME)/node-chrome:$(MAJOR).$(MINOR) - docker tag $(NAME)/node-firefox:$(VERSION) $(NAME)/node-firefox:$(MAJOR).$(MINOR) - docker tag $(NAME)/node-opera:$(VERSION) $(NAME)/node-opera:$(MAJOR).$(MINOR) - docker tag $(NAME)/standalone-chrome:$(VERSION) $(NAME)/standalone-chrome:$(MAJOR).$(MINOR) - docker tag $(NAME)/standalone-firefox:$(VERSION) $(NAME)/standalone-firefox:$(MAJOR).$(MINOR) - docker tag $(NAME)/standalone-opera:$(VERSION) $(NAME)/standalone-opera:$(MAJOR).$(MINOR) - docker tag $(NAME)/base:$(VERSION) $(NAME)/base:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/hub:$(VERSION) $(NAME)/hub:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/distributor:$(VERSION) $(NAME)/distributor:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/router:$(VERSION) $(NAME)/router:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/sessions:$(VERSION) $(NAME)/sessions:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/node-base:$(VERSION) $(NAME)/node-base:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/node-chrome:$(VERSION) $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/node-firefox:$(VERSION) $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/node-opera:$(VERSION) $(NAME)/node-opera:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/standalone-chrome:$(VERSION) $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/standalone-firefox:$(VERSION) $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH) - docker tag $(NAME)/standalone-opera:$(VERSION) $(NAME)/standalone-opera:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR) + docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR) + docker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR) + docker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR) + docker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR) + docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR) + docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR) + docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR) + docker tag $(NAME)/node-opera:$(TAG_VERSION) $(NAME)/node-opera:$(MAJOR) + docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR) + docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR) + docker tag $(NAME)/standalone-opera:$(TAG_VERSION) $(NAME)/standalone-opera:$(MAJOR) + docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR).$(MINOR) + docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR).$(MINOR) + docker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR).$(MINOR) + docker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR).$(MINOR) + docker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR).$(MINOR) + docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR).$(MINOR) + docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR).$(MINOR) + docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR).$(MINOR) + docker tag $(NAME)/node-opera:$(TAG_VERSION) $(NAME)/node-opera:$(MAJOR).$(MINOR) + docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR).$(MINOR) + docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR).$(MINOR) + docker tag $(NAME)/standalone-opera:$(TAG_VERSION) $(NAME)/standalone-opera:$(MAJOR).$(MINOR) + docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/node-opera:$(TAG_VERSION) $(NAME)/node-opera:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/standalone-opera:$(TAG_VERSION) $(NAME)/standalone-opera:$(MAJOR_MINOR_PATCH) release: tag_major_minor - @if ! docker images $(NAME)/base | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/base version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/hub | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/hub version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/distributor | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/distributor version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/router | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/router version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/sessions | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/sessions version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/node-base | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/node-base version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/node-chrome | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/node-chrome version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/node-firefox | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/node-firefox version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/node-opera | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/node-opera version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/standalone-chrome | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/standalone-chrome version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/standalone-firefox | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/standalone-firefox version $(VERSION) is not yet built. Please run 'make build'"; false; fi - @if ! docker images $(NAME)/standalone-opera | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME)/standalone-opera version $(VERSION) is not yet built. Please run 'make build'"; false; fi - docker push $(NAME)/base:$(VERSION) - docker push $(NAME)/hub:$(VERSION) - docker push $(NAME)/distributor:$(VERSION) - docker push $(NAME)/router:$(VERSION) - docker push $(NAME)/sessions:$(VERSION) - docker push $(NAME)/node-base:$(VERSION) - docker push $(NAME)/node-chrome:$(VERSION) - docker push $(NAME)/node-firefox:$(VERSION) - docker push $(NAME)/node-opera:$(VERSION) - docker push $(NAME)/standalone-chrome:$(VERSION) - docker push $(NAME)/standalone-firefox:$(VERSION) - docker push $(NAME)/standalone-opera:$(VERSION) + @if ! docker images $(NAME)/base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/base version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/hub | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/hub version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/distributor | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/distributor version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/router | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/router version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/sessions | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/sessions version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/node-base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-base version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/node-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/node-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/node-opera | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-opera version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/standalone-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/standalone-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/standalone-opera | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-opera version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + docker push $(NAME)/base:$(TAG_VERSION) + docker push $(NAME)/hub:$(TAG_VERSION) + docker push $(NAME)/distributor:$(TAG_VERSION) + docker push $(NAME)/router:$(TAG_VERSION) + docker push $(NAME)/sessions:$(TAG_VERSION) + docker push $(NAME)/node-base:$(TAG_VERSION) + docker push $(NAME)/node-chrome:$(TAG_VERSION) + docker push $(NAME)/node-firefox:$(TAG_VERSION) + docker push $(NAME)/node-opera:$(TAG_VERSION) + docker push $(NAME)/standalone-chrome:$(TAG_VERSION) + docker push $(NAME)/standalone-firefox:$(TAG_VERSION) + docker push $(NAME)/standalone-opera:$(TAG_VERSION) docker push $(NAME)/base:$(MAJOR) docker push $(NAME)/hub:$(MAJOR) docker push $(NAME)/distributor:$(MAJOR) @@ -233,22 +235,22 @@ test: test_chrome \ test_chrome: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChrome + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChrome test_chrome_standalone: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChrome + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChrome test_firefox: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeFirefox + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeFirefox test_firefox_standalone: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox test_opera: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeOpera + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeOpera test_opera_standalone: - VERSION=$(VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneOpera + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneOpera .PHONY: \ all \ From 31a70775fa523c3698016038dcaff9039e3561e9 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 01:26:23 +0200 Subject: [PATCH 02/11] Script to tag browser images verbosely --- Makefile | 13 +++++++++++++ tag_browser_images.sh | 44 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100755 tag_browser_images.sh diff --git a/Makefile b/Makefile index a6e9c24665..7de414834f 100644 --- a/Makefile +++ b/Makefile @@ -98,6 +98,18 @@ generate_standalone_opera: standalone_opera: opera generate_standalone_opera cd ./StandaloneOpera && docker build $(BUILD_ARGS) -t $(NAME)/standalone-opera:$(TAG_VERSION) . + +tag_browser_images: tag_chrome_images tag_firefox_images tag_opera_images + +tag_chrome_images: + ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) chrome + +tag_firefox_images: + ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) firefox + +tag_opera_images: + ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) opera + tag_latest: docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest @@ -281,4 +293,5 @@ test_opera_standalone: standalone_chrome \ standalone_firefox \ tag_latest \ + tag_browser_images \ test diff --git a/tag_browser_images.sh b/tag_browser_images.sh new file mode 100755 index 0000000000..036c3a2950 --- /dev/null +++ b/tag_browser_images.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +TAG_VERSION=$1 +NAMESPACE=$2 +BROWSER=$3 + +echo "Tagging images for browser ${BROWSER}, tag version ${TAG_VERSION}, namespace ${NAMESPACE}" + +case "${BROWSER}" in + +chrome) + CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') + echo "Chrome version -> "${CHROME_VERSION} + + CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') + echo "ChromeDriver version -> "${CHROMEDRIVER_VERSION} + + docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} \ + ${NAMESPACE}/node-chrome:${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION} + ;; +firefox) + FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') + echo "Firefox version -> "${FIREFOX_VERSION} + + GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') + echo "GeckoDriver version -> "${GECKODRIVER_VERSION} + + docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} \ + ${NAMESPACE}/node-firefox:${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION} + ;; +opera) + OPERA_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} opera --version) + echo "Opera version -> "${OPERA_VERSION} + + OPERADRIVER_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} operadriver --version | awk 'NR==1{print $2}') + echo "OperaDriver version -> "${OPERADRIVER_VERSION} + + docker tag ${NAMESPACE}/node-opera:${TAG_VERSION} \ + ${NAMESPACE}/node-opera:${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} + ;; +*) + echo "Unknown browser!" + ;; +esac From 49dd51e9cfa09e38d5cb2de613687fe0e379deb2 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 01:30:14 +0200 Subject: [PATCH 03/11] Using script in GitHub action --- .github/workflows/deploy.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 57e5a33b28..9224433356 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -28,6 +28,10 @@ jobs: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - name: Deploy new images run: VERSION="${TAG}" make release + - name: Tag browser images + run: VERSION="${TAG}" make tag_browser_images + - name: List Docker images + run: docker images # - name: Deploy tag latest # run: VERSION="${TRAVIS_TAG}" make tag_latest # - name: Deploy release latest From 0b8ab1255dc073d33bed00c556aefdb8c3b00cde Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 10:14:13 +0200 Subject: [PATCH 04/11] Adding more tags for chrome images --- .github/workflows/deploy.yml | 4 +-- Makefile | 6 ++-- tag_browser_images.sh | 58 ++++++++++++++++++++++++++++++++---- 3 files changed, 57 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9224433356..28a25b7f19 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -26,8 +26,8 @@ jobs: env: DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - - name: Deploy new images - run: VERSION="${TAG}" make release +# - name: Deploy new images +# run: VERSION="${TAG}" make release - name: Tag browser images run: VERSION="${TAG}" make tag_browser_images - name: List Docker images diff --git a/Makefile b/Makefile index 7de414834f..c610dd8ea6 100644 --- a/Makefile +++ b/Makefile @@ -102,13 +102,13 @@ standalone_opera: opera generate_standalone_opera tag_browser_images: tag_chrome_images tag_firefox_images tag_opera_images tag_chrome_images: - ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) chrome + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) chrome tag_firefox_images: - ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) firefox + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) firefox tag_opera_images: - ./tag_browser_images.sh $(TAG_VERSION) $(NAMESPACE) opera + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) opera tag_latest: docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest diff --git a/tag_browser_images.sh b/tag_browser_images.sh index 036c3a2950..7e802baa74 100755 --- a/tag_browser_images.sh +++ b/tag_browser_images.sh @@ -1,22 +1,62 @@ #!/usr/bin/env bash -TAG_VERSION=$1 -NAMESPACE=$2 -BROWSER=$3 +VERSION=$1 +BUILD_DATE=$2 +NAMESPACE=$3 +BROWSER=$4 -echo "Tagging images for browser ${BROWSER}, tag version ${TAG_VERSION}, namespace ${NAMESPACE}" +TAG_VERSION=${VERSION}-${BUILD_DATE} + +function short_version() { + local __long_version=$1 + local __version_split=( ${__long_version//./ } ) + echo "${__version_split[0]}.${__version_split[1]}" +} + + +echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}" case "${BROWSER}" in chrome) CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') echo "Chrome version -> "${CHROME_VERSION} + CHROME_SHORT_VERSION="$(short_version ${CHROME_VERSION})" + echo "Short Chrome version -> "${CHROME_VERSION} CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') echo "ChromeDriver version -> "${CHROMEDRIVER_VERSION} + CHROMEDRIVER_SHORT_VERSION="$(short_version ${CHROMEDRIVER_VERSION})" + echo "Short ChromeDriver version -> "${CHROMEDRIVER_VERSION} + + CHROME_TAGS=( + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION} + # Browser version and browser driver version plus build date + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE} + # Browser version and browser driver version + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION} + # Browser version and build date + ${CHROME_VERSION}-${BUILD_DATE} + # Browser version + ${CHROME_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 + docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag} + docker tag ${NAMESPACE}/standalone-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag} + done - docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} \ - ${NAMESPACE}/node-chrome:${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION} ;; firefox) FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') @@ -25,8 +65,11 @@ firefox) GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') echo "GeckoDriver version -> "${GECKODRIVER_VERSION} + # Very verbose tag docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} \ ${NAMESPACE}/node-firefox:${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION} + docker tag ${NAMESPACE}/standalone-firefox:${TAG_VERSION} \ + ${NAMESPACE}/standalone-firefox:${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION} ;; opera) OPERA_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} opera --version) @@ -35,8 +78,11 @@ opera) OPERADRIVER_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} operadriver --version | awk 'NR==1{print $2}') echo "OperaDriver version -> "${OPERADRIVER_VERSION} + # Very verbose tag docker tag ${NAMESPACE}/node-opera:${TAG_VERSION} \ ${NAMESPACE}/node-opera:${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} + docker tag ${NAMESPACE}/standalone-opera:${TAG_VERSION} \ + ${NAMESPACE}/standalone-opera:${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} ;; *) echo "Unknown browser!" From 4194c649752c58d9f149d47b32bb9df10c3a3f5b Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 10:49:08 +0200 Subject: [PATCH 05/11] Adding a parameter to push (or not) images --- Makefile | 19 ++-- tag_and_push_browser_images.sh | 155 +++++++++++++++++++++++++++++++++ tag_browser_images.sh | 90 ------------------- 3 files changed, 166 insertions(+), 98 deletions(-) create mode 100755 tag_and_push_browser_images.sh delete mode 100755 tag_browser_images.sh diff --git a/Makefile b/Makefile index c610dd8ea6..5637dca983 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) AUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ) PLATFORM := $(shell uname -s) +PUSH_IMAGE := $(or $(PUSH_IMAGE),$(PUSH_IMAGE),false) BUILD_ARGS := $(BUILD_ARGS) MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION))) MINOR := $(word 2,$(subst ., ,$(TAG_VERSION))) @@ -99,16 +100,18 @@ standalone_opera: opera generate_standalone_opera cd ./StandaloneOpera && docker build $(BUILD_ARGS) -t $(NAME)/standalone-opera:$(TAG_VERSION) . -tag_browser_images: tag_chrome_images tag_firefox_images tag_opera_images +# https://github.com/SeleniumHQ/docker-selenium/issues/992 +# Additional tags for browser images +tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_opera_images -tag_chrome_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) chrome +tag_and_push_chrome_images: + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome -tag_firefox_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) firefox +tag_and_push_firefox_images: + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox -tag_opera_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) opera +tag_and_push_opera_images: + ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) opera tag_latest: docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest @@ -293,5 +296,5 @@ test_opera_standalone: standalone_chrome \ standalone_firefox \ tag_latest \ - tag_browser_images \ + tag_and_push_browser_images \ test diff --git a/tag_and_push_browser_images.sh b/tag_and_push_browser_images.sh new file mode 100755 index 0000000000..e8ec6e1104 --- /dev/null +++ b/tag_and_push_browser_images.sh @@ -0,0 +1,155 @@ +#!/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]}" +} + + +echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}" + +case "${BROWSER}" in + +chrome) + CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') + echo "Chrome version -> "${CHROME_VERSION} + CHROME_SHORT_VERSION="$(short_version ${CHROME_VERSION})" + echo "Short Chrome version -> "${CHROME_SHORT_VERSION} + + CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${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=( + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION} + # Browser version and browser driver version plus build date + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE} + # Browser version and browser driver version + ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION} + # Browser version and build date + ${CHROME_VERSION}-${BUILD_DATE} + # Browser version + ${CHROME_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 + docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag} + docker tag ${NAMESPACE}/standalone-chrome:${TAG_VERSION} ${NAMESPACE}/standalone-chrome:${chrome_tag} + if [ "${PUSH_IMAGE}" = true ]; then + docker push ${NAMESPACE}/node-chrome:${chrome_tag} + docker push ${NAMESPACE}/standalone-chrome:${chrome_tag} + fi + done + + ;; +firefox) + FIREFOX_VERSION=$(docker run --rm selenium/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 selenium/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=( + ${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 + docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} ${NAMESPACE}/node-firefox:${firefox_tag} + docker tag ${NAMESPACE}/standalone-firefox:${TAG_VERSION} ${NAMESPACE}/standalone-firefox:${firefox_tag} + if [ "${PUSH_IMAGE}" = true ]; then + docker push ${NAMESPACE}/node-firefox:${firefox_tag} + docker push ${NAMESPACE}/standalone-firefox:${firefox_tag} + fi + done + + ;; +opera) + OPERA_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} opera --version) + echo "Opera version -> "${OPERA_VERSION} + OPERA_SHORT_VERSION="$(short_version ${OPERA_VERSION})" + echo "Short Opera version -> "${OPERA_SHORT_VERSION} + OPERADRIVER_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} operadriver --version | awk 'NR==1{print $2}') + echo "OperaDriver version -> "${OPERADRIVER_VERSION} + OPERADRIVER_SHORT_VERSION="$(short_version ${OPERADRIVER_VERSION})" + echo "Short OperaDriver version -> "${OPERADRIVER_SHORT_VERSION} + + OPERA_TAGS=( + ${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} + # Browser version and browser driver version plus build date + ${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-${BUILD_DATE} + # Browser version and browser driver version + ${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION} + # Browser version and build date + ${OPERA_VERSION}-${BUILD_DATE} + # Browser version + ${OPERA_VERSION} + ## Short versions + ${OPERA_SHORT_VERSION}-operadriver-${OPERADRIVER_SHORT_VERSION}-grid-${TAG_VERSION} + # Browser version and browser driver version plus build date + ${OPERA_SHORT_VERSION}-operadriver-${OPERADRIVER_SHORT_VERSION}-${BUILD_DATE} + # Browser version and browser driver version + ${OPERA_SHORT_VERSION}-operadriver-${OPERADRIVER_SHORT_VERSION} + # Browser version and build date + ${OPERA_SHORT_VERSION}-${BUILD_DATE} + # Browser version + ${OPERA_SHORT_VERSION} + ) + + for opera_tag in "${OPERA_TAGS[@]}" + do + docker tag ${NAMESPACE}/node-opera:${TAG_VERSION} ${NAMESPACE}/node-opera:${opera_tag} + docker tag ${NAMESPACE}/standalone-opera:${TAG_VERSION} ${NAMESPACE}/standalone-opera:${opera_tag} + if [ "${PUSH_IMAGE}" = true ]; then + docker push ${NAMESPACE}/node-opera:${opera_tag} + docker push ${NAMESPACE}/standalone-opera:${opera_tag} + fi + done + + ;; +*) + echo "Unknown browser!" + ;; +esac diff --git a/tag_browser_images.sh b/tag_browser_images.sh deleted file mode 100755 index 7e802baa74..0000000000 --- a/tag_browser_images.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash - -VERSION=$1 -BUILD_DATE=$2 -NAMESPACE=$3 -BROWSER=$4 - -TAG_VERSION=${VERSION}-${BUILD_DATE} - -function short_version() { - local __long_version=$1 - local __version_split=( ${__long_version//./ } ) - echo "${__version_split[0]}.${__version_split[1]}" -} - - -echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}" - -case "${BROWSER}" in - -chrome) - CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') - echo "Chrome version -> "${CHROME_VERSION} - CHROME_SHORT_VERSION="$(short_version ${CHROME_VERSION})" - echo "Short Chrome version -> "${CHROME_VERSION} - - CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') - echo "ChromeDriver version -> "${CHROMEDRIVER_VERSION} - CHROMEDRIVER_SHORT_VERSION="$(short_version ${CHROMEDRIVER_VERSION})" - echo "Short ChromeDriver version -> "${CHROMEDRIVER_VERSION} - - CHROME_TAGS=( - ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION} - # Browser version and browser driver version plus build date - ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE} - # Browser version and browser driver version - ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION} - # Browser version and build date - ${CHROME_VERSION}-${BUILD_DATE} - # Browser version - ${CHROME_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 - docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag} - docker tag ${NAMESPACE}/standalone-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag} - done - - ;; -firefox) - FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') - echo "Firefox version -> "${FIREFOX_VERSION} - - GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') - echo "GeckoDriver version -> "${GECKODRIVER_VERSION} - - # Very verbose tag - docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} \ - ${NAMESPACE}/node-firefox:${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION} - docker tag ${NAMESPACE}/standalone-firefox:${TAG_VERSION} \ - ${NAMESPACE}/standalone-firefox:${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION} - ;; -opera) - OPERA_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} opera --version) - echo "Opera version -> "${OPERA_VERSION} - - OPERADRIVER_VERSION=$(docker run --rm selenium/node-opera:${TAG_VERSION} operadriver --version | awk 'NR==1{print $2}') - echo "OperaDriver version -> "${OPERADRIVER_VERSION} - - # Very verbose tag - docker tag ${NAMESPACE}/node-opera:${TAG_VERSION} \ - ${NAMESPACE}/node-opera:${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} - docker tag ${NAMESPACE}/standalone-opera:${TAG_VERSION} \ - ${NAMESPACE}/standalone-opera:${OPERA_VERSION}-operadriver-${OPERADRIVER_VERSION}-grid-${TAG_VERSION} - ;; -*) - echo "Unknown browser!" - ;; -esac From dc4f5cc1b611037d026ce5c1b5c72e76048dccff Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 10:50:45 +0200 Subject: [PATCH 06/11] Fixing script name --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 5637dca983..5b04984536 100644 --- a/Makefile +++ b/Makefile @@ -105,13 +105,13 @@ standalone_opera: opera generate_standalone_opera tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_opera_images tag_and_push_chrome_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome + ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome tag_and_push_firefox_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox + ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox tag_and_push_opera_images: - ./tag_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) opera + ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) opera tag_latest: docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest From 637fa1f454edcea6b429eea90b3411a052e1e621 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 11:00:21 +0200 Subject: [PATCH 07/11] Using the correct make file command [skip ci] --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 28a25b7f19..af0754cba3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,7 +29,7 @@ jobs: # - name: Deploy new images # run: VERSION="${TAG}" make release - name: Tag browser images - run: VERSION="${TAG}" make tag_browser_images + run: VERSION="${TAG}" make tag_and_push_browser_images - name: List Docker images run: docker images # - name: Deploy tag latest From 77f7eb513588798889425e5f388472456422490a Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 11:07:27 +0200 Subject: [PATCH 08/11] Debugging [skip ci] --- .github/workflows/build-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 0ec48eab32..41465497b6 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -35,6 +35,8 @@ jobs: run: echo "::set-env name=BRANCH::$(echo ${TARGET_BRANCH##*/})" env: TARGET_BRANCH: ${{ github.head_ref }} + - name: Output GitHub Event commits + run: echo ${{ github.event.commits }} - name: Output branch name run: echo ${BRANCH} - name: Build Docker images From fc63afb180dff76f1aa77e71af1c373c373e3390 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 11:24:51 +0200 Subject: [PATCH 09/11] Adding comments on behaviour --- .github/workflows/build-test.yml | 4 +--- .github/workflows/deploy.yml | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 41465497b6..294e21c0e8 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -10,7 +10,7 @@ on: jobs: build-and-test: - # Skip job based on the commit message + # Skip job based on the commit message, only works in push to branches for now if: contains(toJson(github.event.commits), '[skip ci]') == false name: Build & test Docker images with random user runs-on: ubuntu-18.04 @@ -35,8 +35,6 @@ jobs: run: echo "::set-env name=BRANCH::$(echo ${TARGET_BRANCH##*/})" env: TARGET_BRANCH: ${{ github.head_ref }} - - name: Output GitHub Event commits - run: echo ${{ github.event.commits }} - name: Output branch name run: echo ${BRANCH} - name: Build Docker images diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index af0754cba3..3802e6176c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -7,8 +7,6 @@ on: jobs: deploy: - # Skip job based on the commit message - if: contains(toJson(github.event.commits), '[skip ci]') == false name: Deploy Docker images runs-on: ubuntu-18.04 steps: From e5c31d63cb60a7d7dc9ea5ebe57959ed588001c6 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 11:25:44 +0200 Subject: [PATCH 10/11] Debugging --- .github/workflows/deploy.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3802e6176c..f4e538a315 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,11 +19,11 @@ jobs: run: echo ${TAG} - name: Build run: VERSION="${TAG}" make build - - name: Login Docker Hub - run: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - env: - DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} - DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} +# - name: Login Docker Hub +# run: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" +# env: +# DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} +# DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} # - name: Deploy new images # run: VERSION="${TAG}" make release - name: Tag browser images From b5aed83dcf1b0f25af5b25d7cb7ffe704f5ce593 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 20 Jul 2020 13:05:59 +0200 Subject: [PATCH 11/11] Logging into docker --- .github/workflows/deploy.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f4e538a315..3802e6176c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,11 +19,11 @@ jobs: run: echo ${TAG} - name: Build run: VERSION="${TAG}" make build -# - name: Login Docker Hub -# run: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" -# env: -# DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} -# DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + - name: Login Docker Hub + run: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + env: + DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} # - name: Deploy new images # run: VERSION="${TAG}" make release - name: Tag browser images