11version : 2
2+ get_common_build_num : &get_common_build_num
3+ name : Export commond build number
4+ command : echo "export COMMON_BUILD_NUM=$(cat /tmp/workspace/build)" >> $BASH_ENV
25jobs :
6+ set_common_build_number :
7+ docker :
8+ - image : buildpack-deps:jessie
9+ steps :
10+ - run :
11+ name : Write build number
12+ command : echo "${CIRCLE_BUILD_NUM}" > build
13+ - persist_to_workspace :
14+ root : .
15+ paths :
16+ - build
317 build_and_push_db :
418 machine :
519 image : circleci/classic:latest
923 USER_GID : 1001
1024 steps :
1125 - checkout
26+ - attach_workspace :
27+ at : /tmp/workspace
28+ - run : *get_common_build_num
1229 - run :
1330 name : Prepare dependency folders
1431 command : mkdir -p ~/.m2 ~/.ivy2 ~/.sbt
@@ -27,42 +44,84 @@ jobs:
2744 name : Build server docker image
2845 command : |
2946 docker build \
30- -t scalableminds/fossildb:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM } \
47+ -t scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM } \
3148 -t scalableminds/fossildb:${CIRCLE_BRANCH} \
3249 .
3350 - run :
3451 name : Push to DockerHub
3552 command : |
3653 set -x
3754 docker login -u $DOCKER_USER -p $DOCKER_PASS
38- docker push scalableminds/fossildb:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM }
55+ docker push scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM }
3956 docker push scalableminds/fossildb:${CIRCLE_BRANCH}
4057 docker logout
4158 build_and_push_client :
4259 machine :
4360 image : circleci/classic:latest
4461 steps :
4562 - checkout
63+ - attach_workspace :
64+ at : /tmp/workspace
65+ - run : *get_common_build_num
4666 - run :
4767 name : Build client docker image
4868 command : |
4969 docker build \
5070 -f client/Dockerfile \
51- -t scalableminds/fossildb-client:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM } \
71+ -t scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM } \
5272 -t scalableminds/fossildb-client:${CIRCLE_BRANCH} \
5373 .
5474 - run :
5575 name : Push to DockerHub
5676 command : |
5777 set -x
5878 docker login -u $DOCKER_USER -p $DOCKER_PASS
59- docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM }
79+ docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM }
6080 docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}
6181 docker logout
82+ smoketest :
83+ machine :
84+ image : circleci/classic:latest
85+ steps :
86+ - checkout
87+ - attach_workspace :
88+ at : /tmp/workspace
89+ - run : *get_common_build_num
90+ - run :
91+ name : Pull from DockerHub
92+ command : |
93+ set -x
94+ docker login -u $DOCKER_USER -p $DOCKER_PASS
95+ docker pull scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
96+ docker pull scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
97+ docker logout
98+ - run :
99+ name : Start fossildb
100+ command : >
101+ FOSSILDB_TAG=${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
102+ docker-compose up -d fossildb
103+ - run :
104+ name : Wait a second
105+ command : sleep 1
106+ - run :
107+ name : Check health endpoint
108+ command : >
109+ FOSSILDB_CLIENT_TAG=${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
110+ docker-compose run fossildb-health-check
62111
63112workflows :
64113 version : 2
65114 default :
66115 jobs :
67- - build_and_push_db
68- - build_and_push_client
116+ - set_common_build_number
117+ - build_and_push_db :
118+ requires :
119+ - set_common_build_number
120+ - build_and_push_client :
121+ requires :
122+ - set_common_build_number
123+ - smoketest :
124+ requires :
125+ - set_common_build_number
126+ - build_and_push_db
127+ - build_and_push_client
0 commit comments