@@ -9,6 +9,7 @@ LOG_FILE := $(BUILD_DIR)/$(IMAGE).log
99HAS_PIP ?= yes
1010HAS_DPKG ?= yes
1111USES_SCENE_COMMON ?= no
12+ GITHUB_ACTIONS_CACHE ?= false
1213# Read the SHA-pinned image from the Dockerfile ARG default — single source of truth
1314RUNTIME_OS_IMAGE ?= $(shell sed -n 's/^ARG RUNTIME_OS_IMAGE=//p' Dockerfile)
1415
@@ -23,32 +24,36 @@ GREEN := \033[0;32m
2324YELLOW := \033[0;33m
2425RESET := \033[0m
2526
27+
2628.PHONY : build-image
2729build-image : $(BUILD_DIR ) Dockerfile
2830 @echo -e " $( GREEN) ------- STARTING BUILD OF IMAGE: $( IMAGE) :$( VERSION) -------$( RESET) "
2931 @{ \
30- set -e; \
31- set -o pipefail; \
32- TARGET_ARG=" " ; \
33- if [ -n " $( TARGET) " ]; then TARGET_ARG=" --target $( TARGET) " ; fi ; \
34- if env BUILDKIT_PROGRESS=plain docker build $( REBUILDFLAGS) $$ TARGET_ARG \
35- --build-arg http_proxy=$(http_proxy ) \
36- --build-arg https_proxy=$(https_proxy ) \
37- --build-arg no_proxy=$(no_proxy ) \
38- --build-arg CERTDOMAIN=$(CERTDOMAIN ) \
39- --build-arg FORCE_VAAPI=$(FORCE_VAAPI ) \
40- $(EXTRA_BUILD_ARGS ) \
41- --rm -t $(IMAGE ) :$(VERSION ) \
42- -f ./Dockerfile .. 2>&1 | tee $(LOG_FILE ) ; \
43- then \
44- docker tag $(IMAGE ) :$(VERSION ) $(IMAGE ) :latest; \
45- echo -e " $( GREEN) ------- BUILD OF IMAGE $( IMAGE) :$( VERSION) COMPLETED SUCCESSFULLY -------$( RESET) " ; \
46- echo " Log file created at $( LOG_FILE) " ; \
47- else \
48- echo -e " $( RED) ------- BUILD OF IMAGE $( IMAGE) :$( VERSION) FAILED. CHECK $( LOG_FILE) FOR DETAILS. -------$( RESET) " ; \
49- grep --color=auto -i -r " ^error" $(LOG_FILE ) ; \
50- exit 1; \
51- fi \
32+ set -xe; \
33+ set -o pipefail; \
34+ if [ " $( GITHUB_ACTIONS_CACHE) " = " true" ]; then \
35+ EXTRA_BUILD_ARGS+=" --cache-from type=registry,ref=ghcr.io/${CACHE_REGISTRY} /cache-$( IMAGE) :${CACHE_TAG} --cache-from type=registry,ref=ghcr.io/${CACHE_REGISTRY} /cache-$( IMAGE) :main --cache-to type=registry,ref=ghcr.io/${CACHE_REGISTRY} /cache-$( IMAGE) :${CACHE_TAG} ,ignore-error=true" ; \
36+ fi ; \
37+ TARGET_ARG=" " ; \
38+ if [ -n " $( TARGET) " ]; then TARGET_ARG=" --target $( TARGET) " ; fi ; \
39+ if env BUILDKIT_PROGRESS=plain docker build $( REBUILDFLAGS) $$ TARGET_ARG \
40+ --build-arg http_proxy=$(http_proxy ) \
41+ --build-arg https_proxy=$(https_proxy ) \
42+ --build-arg no_proxy=$(no_proxy ) \
43+ --build-arg CERTDOMAIN=$(CERTDOMAIN ) \
44+ --build-arg FORCE_VAAPI=$(FORCE_VAAPI ) \
45+ $$ EXTRA_BUILD_ARGS \
46+ --rm -t $(IMAGE ) :$(VERSION ) \
47+ -f ./Dockerfile .. 2>&1 | tee $(LOG_FILE ) ; \
48+ then \
49+ docker tag $(IMAGE ) :$(VERSION ) $(IMAGE ) :latest; \
50+ echo -e " $( GREEN) ------- BUILD OF IMAGE $( IMAGE) :$( VERSION) COMPLETED SUCCESSFULLY -------$( RESET) " ; \
51+ echo " Log file created at $( LOG_FILE) " ; \
52+ else \
53+ echo -e " $( RED) ------- BUILD OF IMAGE $( IMAGE) :$( VERSION) FAILED. CHECK $( LOG_FILE) FOR DETAILS. -------$( RESET) " ; \
54+ grep --color=auto -i -r " ^error" $(LOG_FILE ) ; \
55+ exit 1; \
56+ fi \
5257 }
5358
5459.PHONY : rebuild
0 commit comments