Skip to content

Commit 7a6a995

Browse files
authored
Simplified CircleCI build (#27)
* simplified CircleCI
1 parent fee2ee5 commit 7a6a995

File tree

1 file changed

+41
-110
lines changed

1 file changed

+41
-110
lines changed

.circleci/config.yml

Lines changed: 41 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,19 @@
11
version: 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
52
jobs:
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
17-
build_and_push_db:
3+
build_and_push:
184
machine:
195
image: circleci/classic:latest
206
environment:
217
SBT_VERSION_TAG: sbt-0.13.15_mongo-3.2.17_node-8.x_jdk-8
228
USER_UID: 1001
239
USER_GID: 1001
24-
TARGET_DIR: &target_dir target/scala-2.12
10+
TARGET_DIR: target/scala-2.12
2511
steps:
2612
- checkout
27-
- attach_workspace:
28-
at: /tmp/workspace
29-
- run: *get_common_build_num
3013
- run:
3114
name: Prepare dependency folders
3215
command: mkdir -p ~/.m2 ~/.ivy2 ~/.sbt
16+
3317
- restore_cache:
3418
key: cache-{{ .Branch }}
3519
- run:
@@ -38,127 +22,74 @@ jobs:
3822
- run:
3923
name: Get FossilDB version
4024
command: docker-compose run sbt java -jar $TARGET_DIR/fossildb.jar --version > $TARGET_DIR/version
41-
- persist_to_workspace:
42-
root: *target_dir
43-
paths:
44-
- fossildb.jar
45-
- version
4625
- save_cache:
4726
key: cache-{{ .Branch }}
4827
paths:
4928
- "~/.m2"
5029
- "~/.ivy2"
5130
- "~/.sbt"
31+
5232
- run:
5333
name: Build server docker image
5434
command: |
5535
docker build \
56-
-t scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM} \
36+
-t scalableminds/fossildb:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM} \
5737
-t scalableminds/fossildb:${CIRCLE_BRANCH} \
5838
.
59-
- run:
60-
name: Push to DockerHub
61-
command: |
62-
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
63-
docker push scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
64-
docker push scalableminds/fossildb:${CIRCLE_BRANCH}
65-
docker logout
66-
build_and_push_client:
67-
machine:
68-
image: circleci/classic:latest
69-
steps:
70-
- checkout
71-
- attach_workspace:
72-
at: /tmp/workspace
73-
- run: *get_common_build_num
7439
- run:
7540
name: Build client docker image
7641
command: |
7742
docker build \
7843
-f client/Dockerfile \
79-
-t scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM} \
44+
-t scalableminds/fossildb-client:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM} \
8045
-t scalableminds/fossildb-client:${CIRCLE_BRANCH} \
8146
.
47+
8248
- run:
83-
name: Push to DockerHub
49+
name: Smoke test
8450
command: |
85-
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
86-
docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
87-
docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}
88-
docker logout
89-
smoketest:
90-
machine:
91-
image: circleci/classic:latest
92-
steps:
93-
- checkout
94-
- attach_workspace:
95-
at: /tmp/workspace
96-
- run: *get_common_build_num
51+
FOSSILDB_TAG=${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM} \
52+
docker-compose up -d fossildb
53+
sleep 1
54+
FOSSILDB_TAG=${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM} \
55+
FOSSILDB_CLIENT_TAG=${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM} \
56+
docker-compose run fossildb-health-check
57+
docker-compose down
58+
9759
- run:
98-
name: Pull from DockerHub
60+
name: Push to Dockerhub
9961
command: |
10062
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
101-
docker pull scalableminds/fossildb:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
102-
docker pull scalableminds/fossildb-client:${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
63+
docker push scalableminds/fossildb:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM}
64+
docker push scalableminds/fossildb:${CIRCLE_BRANCH}
65+
docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}__${CIRCLE_BUILD_NUM}
66+
docker push scalableminds/fossildb-client:${CIRCLE_BRANCH}
10367
docker logout
104-
- run:
105-
name: Start fossildb
106-
command: >
107-
FOSSILDB_TAG=${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
108-
docker-compose up -d fossildb
109-
- run:
110-
name: Wait a second
111-
command: sleep 1
112-
- run:
113-
name: Check health endpoint
114-
command: >
115-
FOSSILDB_CLIENT_TAG=${CIRCLE_BRANCH}__${COMMON_BUILD_NUM}
116-
docker-compose run fossildb-health-check
117-
release_on_github:
118-
docker:
119-
- image: golang:1.9
120-
steps:
121-
- attach_workspace:
122-
at: /tmp/workspace
123-
- checkout
124-
- run:
125-
name: Install ghr
126-
command: go get github.com/tcnksm/ghr
68+
12769
- run:
12870
name: Show version
129-
command: cat /tmp/workspace/version
71+
command: cat $TARGET_DIR/version
13072
- run:
131-
name: Release jar on Github
132-
command: >
133-
ghr
134-
-t $GITHUB_TOKEN
135-
-u scalableminds
136-
-r fossildb
137-
-c $(git rev-parse HEAD)
138-
-b "executable jar of __FossilDB__"
139-
$(cat /tmp/workspace/version | tr -d [:space:])
140-
/tmp/workspace/fossildb.jar
73+
name: Release JAR on Github
74+
command: |
75+
if [ "${CIRCLE_BRANCH}" == "master" ]; then
76+
sudo add-apt-repository ppa:gophers/archive
77+
sudo apt-get update
78+
sudo apt-get install -y golang-1.10-go
79+
go get github.com/tcnksm/ghr
80+
81+
ghr \
82+
-t $GITHUB_TOKEN \
83+
-u scalableminds \
84+
-r fossildb \
85+
-c $(git rev-parse HEAD) \
86+
-b "Executable JAR of __FossilDB__" \
87+
$(cat $TARGET_DIR/version | tr -d [:space:]) \
88+
$TARGET_DIR/fossildb.jar
89+
fi
14190
14291
workflows:
14392
version: 2
14493
default:
14594
jobs:
146-
- set_common_build_number
147-
- build_and_push_db:
148-
requires:
149-
- set_common_build_number
150-
- build_and_push_client:
151-
requires:
152-
- set_common_build_number
153-
- smoketest:
154-
requires:
155-
- set_common_build_number
156-
- build_and_push_db
157-
- build_and_push_client
158-
- release_on_github:
159-
filters:
160-
branches:
161-
only: master
162-
requires:
163-
- build_and_push_db
164-
- smoketest
95+
- build_and_push

0 commit comments

Comments
 (0)