-
Notifications
You must be signed in to change notification settings - Fork 12
/
config.yml
143 lines (130 loc) · 4.36 KB
/
config.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
version: 2
jobs:
build_and_test_python27:
docker:
- image: circleci/python:2.7
- image: rabbitmq:3
- image: mongo:3.4
working_directory: ~/repo
environment:
VIRTUALENV_DIR: "~/virtualenv"
# Don't install various StackStorm dependencies which are already
# installed by CI again in the various check scripts
ST2_INSTALL_DEPS: "0"
steps:
- checkout
- restore_cache:
key: v1-dependency-cache-py27-{{ checksum "requirements.txt" }}
- run:
name: Download dependencies
command: |
git clone -b master git://github.com/stackstorm-exchange/ci.git ~/ci
~/ci/.circle/dependencies
- run:
name: Run tests (Python 2.7)
command: ~/ci/.circle/test
- save_cache:
key: v1-dependency-cache-py27-{{ checksum "requirements.txt" }}
paths:
- ~/.cache/pip
- ~/.apt-cache
# NOTE: We use virtualenv files from Python 2.7 step in "deploy" job so we
# only persist paths from this job
- persist_to_workspace:
root: /
paths:
- home/circleci/ci
- home/circleci/virtualenv
- tmp/st2
- home/circleci/repo
- home/circleci/.gitconfig
# NOTE: Until we add "python_version" metadata attribute to pack.yaml and
# explicitly call which packs work with Python 3.x, Python 3.x failures are
# not considered fatal
build_and_test_python36:
docker:
- image: circleci/python:3.6
- image: rabbitmq:3
- image: mongo:3.4
working_directory: ~/repo
environment:
VIRTUALENV_DIR: "~/virtualenv"
# Don't install various StackStorm dependencies which are already
# installed by CI again in the various check scripts
ST2_INSTALL_DEPS: "0"
steps:
- checkout
- restore_cache:
key: v1-dependency-cache-py36-{{ checksum "requirements.txt" }}
- run:
name: Download dependencies
# NOTE: We don't want to use default "-e" option because this means
# step will fail immediately on one of the commands failures and we
# can't intercept the error and cause non-fatal exit in case pack
# doesn't declare support for Python 3
shell: /bin/bash
command: |
git clone -b master git://github.com/stackstorm-exchange/ci.git ~/ci
~/ci/.circle/dependencies ; ~/ci/.circle/exit_on_py3_checks $?
- run:
name: Run tests (Python 3.6)
# NOTE: We don't want to use default "-e" option because this means
# step will fail immediately on one of the commands failures and we
# can't intercept the error and cause non-fatal exit in case pack
# doesn't declare support for Python 3
shell: /bin/bash
command: ~/ci/.circle/test ; ~/ci/.circle/exit_on_py3_checks $?
- save_cache:
key: v1-dependency-cache-py36-{{ checksum "requirements.txt" }}
paths:
- ~/.cache/pip
- ~/.apt-cache
deploy:
docker:
- image: circleci/python:2.7
working_directory: ~/repo
environment:
VIRTUALENV_DIR: "~/virtualenv"
steps:
- checkout
- restore_cache:
key: v1-dependency-cache-py27-{{ checksum "requirements.txt" }}
- attach_workspace:
at: /
- run:
name: Install dependencies
command: |
sudo apt-get update
sudo apt -y install gmic optipng
- run:
name: Update exchange.stackstorm.org
command: ~/ci/.circle/deployment
workflows:
version: 2
# Workflow which runs on each push
build_test_deploy_on_push:
jobs:
- build_and_test_python27
- build_and_test_python36
- deploy:
requires:
- build_and_test_python27
- build_and_test_python36
filters:
branches:
only: master
build_test_weekly:
jobs:
- build_and_test_python27
- build_and_test_python36
# Workflow which runs nightly - note we don't perform deploy job on nightly
# build
triggers:
# Run nightly build for the pack
- schedule:
# NOTE: We run it at 1 am UTC on every Saturday
cron: "0 1 * * 6"
filters:
branches:
only:
- master