11machine :
22 environment :
3- MAJOR_VERSION_TAG : 1
3+ MAJOR_VERSION_TAG : 2
44 PACKER_VERSION_TAG : 0.12.0
55 TERRAFORM_VERSION_TAG : 0.8.8
66 NODE_VERSION_TAG : 7.5.0
@@ -15,7 +15,7 @@ machine:
1515
1616dependencies :
1717 pre :
18- - sudo apt-get install jq
18+ - sudo apt-get update; sudo apt-get install jq curl curl-dev python-dev
1919 cache_directories :
2020 - " ~/docker"
2121 override :
@@ -25,7 +25,16 @@ dependencies:
2525 if [[ $(./tagexists.sh ${CI_IMAGE_NAME}) == "1" ]];then
2626 ./copybins.sh node && \
2727 echo node >> ~/.allbinaries && echo npm >> ~/.allbinaries
28- fi
28+ else
29+ echo "Building Node.js binary image. ${CI_NODE_IMAGE_NAME} was not found."
30+ echo "The build will take about 40 minutes to complete."
31+ if docker build -f Dockerfile-build-node --rm=false -t "${CI_NODE_IMAGE_NAME}" .; then
32+ echo newJStag >> ~/.allbinaries
33+ echo "${CI_NODE_IMAGE_NAME} has been built and will be pushed to dockerhhub"
34+ ./copybins.sh node && \
35+ echo node >> ~/.allbinaries && echo npm >> ~/.allbinaries
36+ fi
37+ fi
2938 - >
3039 if [[ $(DOCKER_BIN_TAG="${TERRAFORM_VERSION_TAG}" ./tagexists.sh ${TF_IMAGE}) == "1" ]];then
3140 ./copybins.sh terraform && \
6372 docker run -e CHECKPOINT_DISABLE=1 \
6473 --entrypoint /bin/sh "${CI_IMAGE_NAME}" -c "terraform version"
6574 fi
75+ - >
76+ if grep -q newJStag ~/.allbinaries; then
77+ echo "The ${CI_NODE_IMAGE_NAME} was built but still needs to be pushed to docker hub."
78+ docker run --entrypoint /bin/sh "${CI_IMAGE_NAME}:${DOCKER_BIN_TAG}" -c "node --version"
79+ fi
6680 - >
6781 if grep -q node ~/.allbinaries; then
6882 docker run --entrypoint /bin/sh "${CI_IMAGE_NAME}" -c "node --version"
@@ -82,8 +96,15 @@ deployment:
8296 if grep -q node ~/.allbinaries; then
8397 docker tag "${IMAGE_TO_TAG}" \
8498 "${CI_IMAGE_NAME}":${PACKER_VERSION_TAG}.${TERRAFORM_VERSION_TAG}.${NODE_VERSION_TAG}.${CIRCLE_BUILD_NUM}
85- else
86- docker tag "${IMAGE_TO_TAG}" \
87- "${CI_IMAGE_NAME}":${PACKER_VERSION_TAG}.${TERRAFORM_VERSION_TAG}.${CIRCLE_BUILD_NUM}
88- fi
99+ if grep -q newJStag ~/.allbinaries; then
100+ IMAGE_TO_TAG=$(docker images | grep -E "${DOCKER_BIN_TAG}" | awk '{print $3}')
101+ docker tag "${IMAGE_TO_TAG}" \
102+ ${CI_IMAGE_NAME}:${DOCKER_BIN_TAG}.${CIRCLE_BUILD_NUM} && \
103+ docker push "${CI_IMAGE_NAME}":${DOCKER_BIN_TAG}.${CIRCLE_BUILD_NUM} && \
104+ docker push "${CI_IMAGE_NAME}":${DOCKER_BIN_TAG}
105+ fi
106+ else
107+ docker tag "${IMAGE_TO_TAG}" \
108+ "${CI_IMAGE_NAME}":${PACKER_VERSION_TAG}.${TERRAFORM_VERSION_TAG}.${CIRCLE_BUILD_NUM}
109+ fi
89110 - docker push "${CI_IMAGE_NAME}"
0 commit comments