forked from edx/edx-solutions-edx-platform
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.yml
82 lines (71 loc) · 3.4 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
machine:
node:
version: v6.11.1
python:
version: 2.7.10
general:
artifacts:
- "reports"
- "test_root/log"
dependencies:
pre:
- bash ./scripts/install-system-req.sh
override:
- npm install
# Mirror what paver install_prereqs does.
# After a successful build, CircleCI will
# cache the virtualenv at that state, so that
# the next build will not need to install them
# from scratch again.
- pip install --exists-action w -r requirements/edx/pre.txt
- pip install --exists-action w -r requirements/edx/base.txt
- pip install --exists-action w -r requirements/edx/github.txt
- pip install --exists-action w -r requirements/edx/local.txt
- pip install --exists-action w -r requirements/edx/custom.txt
- pip install --exists-action w -r requirements/edx/paver.txt
# HACK: within base.txt stevedore had a
# dependency on a version range of pbr.
# Install a version which falls within that range.
- if [ -e requirements/edx/post.txt ]; then pip install --exists-action w -r requirements/edx/post.txt ; fi
- pip install coveralls==1.0
# We need to pin djangorestframework until we have upgraded to edxval 0.0.19 or greater
- pip install --upgrade --force-reinstall git+https:/edx/django-rest-framework.git@3c72cb5ee5baebc4328947371195eae2077197b0#egg=djangorestframework==3.2.3
# Output the installed python packages to the console to help
# with troubleshooting any issues with python requirements.
- pip freeze
post:
# install custom sqlite 3.14
- wget https:/ghaering/pysqlite/archive/2.8.3.tar.gz
- wget https://www.sqlite.org/2016/sqlite-autoconf-3140100.tar.gz
- tar -xzvf sqlite-autoconf-3140100.tar.gz
- tar -xzvf 2.8.3.tar.gz
- cp -av sqlite-autoconf-3140100/. pysqlite-2.8.3/
- cd ./pysqlite-2.8.3 && python setup.py build_static install
- rm -rf 2.8.3.tar.gz sqlite-autoconf-3140100.tar.gz pysqlite-2.8.3 sqlite-autoconf-3140100
test:
override:
# Run tests for the system.
# all-tests.sh is the entry point for determining
# which tests to run.
# See the circleCI documentation regarding parallelism
# to understand how multiple containers can be used to
# run subsets of tests in parallel.
- ./scripts/all-tests.sh:
timeout: 900 # if a command runs this many seconds without output, kill it
parallel: true
post:
- mkdir -p $CIRCLE_TEST_REPORTS/junit
# Copy the junit results up to be consumed by circleci,
# but only do this if there actually are results.
# Note that the greater than zero comparison is doing a
# string compare, but that should be fine for our purposes here.
# Do this on each of the containers that were used in
# the build so that all results are consolidated.
- "if [ $(find reports -type f | wc -l) -gt 0 ] ; then cp -r reports/. $CIRCLE_TEST_REPORTS/junit ; fi":
parallel: true
# If you have enabled coveralls for your repo, configure your COVERALLS_REPO_TOKEN
# as an Environment Variable in the Project Settings on CircleCI, and coverage
# data will automatically be sent to coveralls. See https://coveralls.io/
# If you have not set up set up coveralls then the following statement will
# print a message but not affect the pass/fail status of the build.
- if [ -z $COVERALLS_REPO_TOKEN ]; then echo "Coveralls token not defined."; else coveralls; fi