forked from stacks-network/stacks-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.yml
125 lines (125 loc) · 3.93 KB
/
circle.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
version: 2.1
executors:
docker-publisher:
environment:
IMAGE_NAME: blockstack/stacks-blockchain
docker:
- image: circleci/buildpack-deps:stretch
jobs:
test_demo:
working_directory: /test
docker:
- image: rust:1.40-stretch
steps:
- checkout
- run:
command: |
cargo build --release && cargo install --path .
- run:
command: |
blockstack-core local initialize db &&
blockstack-core local check sample-contracts/tokens.clar db &&
blockstack-core local launch S1G2081040G2081040G2081040G208105NK8PE5.tokens sample-contracts/tokens.clar db &&
blockstack-core local check sample-contracts/names.clar db &&
blockstack-core local launch S1G2081040G2081040G2081040G208105NK8PE5.names sample-contracts/names.clar db &&
blockstack-core local execute db S1G2081040G2081040G2081040G208105NK8PE5.tokens mint! SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR u100000
- run:
command: |
echo "(get-balance 'SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR)" | blockstack-core local eval S1G2081040G2081040G2081040G208105NK8PE5.tokens db
unit_tests_with_cov:
machine: true
working_directory: ~/blockstack
steps:
- checkout
- run:
name: Coverage via tarpaulin
command: |
docker run --security-opt seccomp=unconfined -v "${PWD}:/volume" xd009642/tarpaulin \
bash -c "cargo tarpaulin -v --workspace -t 300 -o Xml"
no_output_timeout: 200m
- run:
name: Upload to codecov.io
command: |
bash <(curl -s https://codecov.io/bash)
unit_tests:
docker:
- image: rust:1.40-stretch
working_directory: ~/blockstack
steps:
- checkout
- run:
no_output_timeout: 200m
command: |
cargo test --workspace
all_tests:
docker:
- image: rust:1.40-stretch
working_directory: ~/blockstack
steps:
- checkout
- run:
no_output_timeout: 200m
command: |
cargo test --workspace && cargo test -- --ignored --test-threads 1
build-docker:
executor: docker-publisher
steps:
- checkout
- setup_remote_docker
- run:
name: build docker image
command: docker build . -t $IMAGE_NAME:latest
- run:
name: save image to workspace
command: docker save -o image.tar $IMAGE_NAME:latest
- persist_to_workspace:
root: .
paths:
- ./image.tar
push-docker-tags:
executor: docker-publisher
steps:
- attach_workspace:
at: /tmp/workspace
- setup_remote_docker
- run:
name: load docker image
command: docker load -i /tmp/workspace/image.tar
- run:
name: push docker image
command: |
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
if [ "${CIRCLE_BRANCH}" = "master" ]; then
docker tag $IMAGE_NAME:latest $IMAGE_NAME:master
docker push $IMAGE_NAME:latest
docker push $IMAGE_NAME:master
elif [ "${CIRCLE_BRANCH}" = "feature/docker-deploy" ]; then
docker tag $IMAGE_NAME:latest $IMAGE_NAME:test-deploy
docker push $IMAGE_NAME:test-deploy
fi
workflows:
version: 2
build-deploy:
jobs:
- unit_tests
- test_demo
- build-docker:
requires:
- unit_tests
- all_tests:
filters:
branches:
only:
- master
- /.*net.*/
- /.*marf.*/
- feature/ignore-slow-serial-tests
- push-docker-tags:
requires:
- unit_tests
- build-docker
filters:
branches:
only:
- master
- feature/docker-deploy