@@ -10,14 +10,16 @@ Usage:
1010 --tag <docker-tag> \
1111 --src-path <sdk-path> \
1212 --job-name <job-name> \
13- --ref <git-ref>
13+ --ref <git-ref> \
14+ --fallback-image <docker-tag>
1415
1516Options:
16- --context Docker build context directory (e.g. $GITHUB_WORKSPACE/current).
17- --tag Docker image tag to build (e.g. ydb-app-current).
18- --src-path Value for Docker build arg SRC_PATH (e.g. native/table).
19- --job-name Value for Docker build arg JOB_NAME (e.g. native-table).
20- --ref Value for Docker build arg REF (e.g. branch name / sha).
17+ --context Docker build context directory (e.g. $GITHUB_WORKSPACE/current).
18+ --tag Docker image tag to build (e.g. ydb-app-current).
19+ --src-path Value for Docker build arg SRC_PATH (e.g. native/table).
20+ --job-name Value for Docker build arg JOB_NAME (e.g. native-table).
21+ --ref Value for Docker build arg REF (e.g. branch name / sha).
22+ --fallback-image Image tag to return if initial Docker image build fails
2123EOF
2224}
2325
3234ref=" "
3335src_path=" "
3436job_name=" "
37+ fallback_image=" "
3538
3639while [[ $# -gt 0 ]]; do
3740 case " $1 " in
@@ -55,6 +58,10 @@ while [[ $# -gt 0 ]]; do
5558 job_name=" ${2:- } "
5659 shift 2
5760 ;;
61+ --fallback-image)
62+ fallback_image=" ${2:- } "
63+ shift 2
64+ ;;
5865 -h|--help)
5966 usage
6067 exit 0
6774
6875if [[ -z " $context_dir " || -z " $tag " || -z " $src_path " || -z " $job_name " || -z " $ref " ]]; then
6976 usage
70- exit 2
77+ die " Incomplete argument set "
7178fi
7279
7380[[ -d " $context_dir " ]] || die " --context does not exist: $context_dir "
@@ -82,10 +89,22 @@ echo " SRC_PATH: $src_path"
8289echo " JOB_NAME: $job_name "
8390
8491(
92+ set +e
8593 cd " $context_dir "
8694 docker build -t " $tag " \
8795 --build-arg " SRC_PATH=$src_path " \
8896 --build-arg " JOB_NAME=$job_name " \
8997 --build-arg " REF=$ref " \
9098 -f " $dockerfile " .
99+ exit_code=$?
100+ echo " Docker build exit code: $exit_code "
101+ if [ $exit_code -ne 0 ]; then
102+ if [[ -z " $fallback_image " ]]; then
103+ die " Docker build failed and --fallback-image is not set" >&2
104+ fi
105+
106+ echo " Baseline build failed, using fallback image: $fallback_image "
107+ docker tag " $fallback_image " " $tag "
108+ fi
109+ set -e
91110)
0 commit comments