docker: generate chrome-vers.mk under agent-chrome build step
* Fixes an issue where chrome-vers.mk is not created when building
but was created when publishing which broke things.
* Fixes an issue with generating chrome-vers.mk under a Mac.
We use printf instead of echo, see [0].
* Make sure "latest" is inserted into chrome-vers.mk.
The agent-bazel image uses chrome-vers.mk.
Some images depended on agent-bazel and used "latest" but
because "latest" wasn't in the file it failed to use the image.
This issue is now fixed so that agent-bazel successfully
creates a "latest" image locally.
[0] https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working
Change-Id: I520a08d52c1dfda3e623be436682fcb03ab26212
diff --git a/jenkins-docker/agent-chrome/Makefile b/jenkins-docker/agent-chrome/Makefile
index c1493cd..13dc4c5 100644
--- a/jenkins-docker/agent-chrome/Makefile
+++ b/jenkins-docker/agent-chrome/Makefile
@@ -5,17 +5,22 @@
CHROME_VERS = latest 69.0.3497.92
build: Makefile Dockerfile
- @for chrome_ver in $(CHROME_VERS); \
+ # Due to issues with echo on Mac (see https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working)
+ # we use printf as a alternative.
+ printf "CHROME_VERS ?= latest" > ../chrome-vers.mk; \
+ for chrome_ver in $(CHROME_VERS); \
do \
echo "Building Docker for $(DEBIAN_VER) / Chrome v$$chrome_ver"; \
echo "========================================================"; \
cat Dockerfile | DEBIAN_VER=$(DEBIAN_VER) CHROME_VER=$$chrome_ver envsubst > Dockerfile-$(DEBIAN_VER)-$$chrome_ver; \
docker build --no-cache=$(NO_CACHE) -f Dockerfile-$(DEBIAN_VER)-$$chrome_ver -t "$(IMAGE)-$$chrome_ver" .; \
- done
+ chrome_curr_ver=$$(docker run --entrypoint=/usr/bin/google-chrome -ti $(IMAGE)-$$chrome_ver --version | awk '{print $$3}'); \
+ printf " $$chrome_curr_ver" >> ../chrome-vers.mk; \
+ done; \
+ printf "" >> ../chrome-vers.mk
publish:
- echo -n "CHROME_VERS ?=" > ../chrome-vers.mk; \
- for chrome_ver in $(CHROME_VERS); \
+ @for chrome_ver in $(CHROME_VERS); \
do \
echo "Pushing $(IMAGE)-$$chrome_ver"; \
docker push $(IMAGE)-$$chrome_ver; \
@@ -23,9 +28,7 @@
docker tag $(IMAGE)-$$chrome_ver $(IMAGE)-$$chrome_curr_ver; \
echo "Pushing $(IMAGE)-$$chrome_curr_ver"; \
docker push $(IMAGE)-$$chrome_curr_ver; \
- echo -n " $$chrome_curr_ver" >> ../chrome-vers.mk; \
- done; \
- echo "" >> ../chrome-vers.mk
+ done
clean:
for chrome_ver in $(CHROME_VERS); \
@@ -34,4 +37,3 @@
done
.PHONY: build publish clean
-