|
16 | 16 | #An array to map containers to annotations |
17 | 17 | declare -A containers |
18 | 18 | declare -A specs |
| 19 | + |
| 20 | +# detect branch or tag |
| 21 | +IS_TAG=0 |
| 22 | +DESCRIBED_TAG=$(git describe --exact-match --tags HEAD) |
| 23 | +if (( $? == 0 )) |
| 24 | +then |
| 25 | + IS_TAG=1 |
| 26 | +fi |
| 27 | +echo "[CI] Is checkout a tag: ${IS_TAG} ${DESCRIBED_TAG}" |
| 28 | + |
| 29 | +#Get last log message |
| 30 | +LAST_LOG=$(git log -1) |
| 31 | +echo "[CI] Last log: ${LAST_LOG}" |
| 32 | + |
| 33 | +# extract any flags from last log |
| 34 | +SKIP_IMAGE_BUILD_FLAG=0 |
| 35 | +GREP_SKIP_IMAGE_BUILD=$(echo $LAST_LOG | grep -i SKIP_IMAGE_BUILD) |
| 36 | +if (( $? == 0 )) |
| 37 | +then |
| 38 | + SKIP_IMAGE_BUILD_FLAG=1 |
| 39 | +fi |
| 40 | +echo "[CI] Skip image build flag: ${SKIP_IMAGE_BUILD_FLAG}" |
| 41 | + |
| 42 | +# skip image build? only if checkout is a branch and SKIP_IMAGE_BUILD is set |
| 43 | +SKIP_IMAGE_BUILD=0 |
| 44 | +if [[ $IS_TAG -eq 0 ]] && [[ $SKIP_IMAGE_BUILD_FLAG -eq 1 ]] |
| 45 | +then |
| 46 | + SKIP_IMAGE_BUILD=1 |
| 47 | + echo "[CI] Image build will be skipped." |
| 48 | +fi |
| 49 | + |
19 | 50 | #Use git to cleanly remove any artifacts |
20 | 51 | git clean -ffdq -e repos |
21 | 52 | if (( $? != 0 )) |
|
58 | 89 | GZ="${TAR}.gz" |
59 | 90 | #Remove previous container if exists |
60 | 91 | PREV_ID=$(docker images -q $PRODUCT) |
61 | | - if [[ ! -z "$PREV_ID" ]] |
62 | | - then |
63 | | - echo "[CI] Removing current image for ${PRODUCT}: ${PREV_ID}" |
64 | | - docker rmi -f ${PREV_ID} |
65 | | - fi |
66 | | - #Build container |
67 | | - echo "[CI] Build for: ${PRODUCT} and file ${NAME}" |
68 | | - #Build docker container |
69 | | - echo " docker build --rm --force-rm -f docker/${dockerfile} -t ${PRODUCT} $@ ." |
70 | | - docker build --rm --force-rm -f docker/${dockerfile} -t ${PRODUCT} "$@" . |
71 | | - if (( $? != 0 )) |
72 | | - then |
73 | | - echo "[ERROR] Failed to build docker container for: ${PRODUCT}" 1>&2 |
74 | | - exit 4 |
75 | | - fi |
76 | | - #Save out the docker image |
77 | | - docker save -o ./${TAR} ${PRODUCT} |
78 | | - if (( $? != 0 )) |
79 | | - then |
80 | | - echo "[ERROR] Failed to save docker container for: ${PRODUCT}" 1>&2 |
81 | | - exit 5 |
82 | | - fi |
83 | | - #GZIP it |
84 | | - pigz -f ./${TAR} |
85 | | - if (( $? != 0 )) |
86 | | - then |
87 | | - echo "[ERROR] Failed to GZIP container for: ${PRODUCT}" 1>&2 |
88 | | - exit 6 |
89 | | - fi |
90 | | - ${DIR}/container-met.py ${PRODUCT} ${TAG} ${GZ} ${STORAGE} |
91 | | - if (( $? != 0 )) |
92 | | - then |
93 | | - echo "[ERROR] Failed to make metadata and store container for: ${PRODUCT}" 1>&2 |
94 | | - exit 7 |
| 92 | + if (( ${SKIP_IMAGE_BUILD} == 0 )); then |
| 93 | + if [[ ! -z "$PREV_ID" ]] |
| 94 | + then |
| 95 | + echo "[CI] Removing current image for ${PRODUCT}: ${PREV_ID}" |
| 96 | + docker rmi -f ${PREV_ID} |
| 97 | + fi |
| 98 | + #Build container |
| 99 | + echo "[CI] Build for: ${PRODUCT} and file ${NAME}" |
| 100 | + #Build docker container |
| 101 | + echo " docker build --rm --force-rm -f docker/${dockerfile} -t ${PRODUCT} $@ ." |
| 102 | + docker build --rm --force-rm -f docker/${dockerfile} -t ${PRODUCT} "$@" . |
| 103 | + if (( $? != 0 )) |
| 104 | + then |
| 105 | + echo "[ERROR] Failed to build docker container for: ${PRODUCT}" 1>&2 |
| 106 | + exit 4 |
| 107 | + fi |
| 108 | + #Save out the docker image |
| 109 | + docker save -o ./${TAR} ${PRODUCT} |
| 110 | + if (( $? != 0 )) |
| 111 | + then |
| 112 | + echo "[ERROR] Failed to save docker container for: ${PRODUCT}" 1>&2 |
| 113 | + exit 5 |
| 114 | + fi |
| 115 | + #GZIP it |
| 116 | + pigz -f ./${TAR} |
| 117 | + if (( $? != 0 )) |
| 118 | + then |
| 119 | + echo "[ERROR] Failed to GZIP container for: ${PRODUCT}" 1>&2 |
| 120 | + exit 6 |
| 121 | + fi |
| 122 | + ${DIR}/container-met.py ${PRODUCT} ${TAG} ${GZ} ${STORAGE} |
| 123 | + if (( $? != 0 )) |
| 124 | + then |
| 125 | + echo "[ERROR] Failed to make metadata and store container for: ${PRODUCT}" 1>&2 |
| 126 | + exit 7 |
| 127 | + fi |
95 | 128 | fi |
96 | 129 | containers[${NAME}]=${PRODUCT} |
97 | 130 | #Attempt to remove dataset |
|
0 commit comments