forked from stacks-network/stacks-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.yml
129 lines (129 loc) · 4.03 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
126
127
128
129
version: 2.1
executors:
docker-publisher:
environment:
IMAGE_NAME: blockstack/stacks-blockchain
docker:
- image: circleci/buildpack-deps:stretch
resource_class: medium+
jobs:
test_demo:
working_directory: /test
docker:
- image: rust:1.40-stretch
resource_class: medium+
steps:
- checkout
- run:
command: |
cargo build && 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
resource_class: medium+
working_directory: ~/blockstack
steps:
- checkout
- run:
no_output_timeout: 200m
command: |
cargo test --workspace
all_tests:
docker:
- image: rust:1.40-stretch
resource_class: large
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