forked from libAtoms/QUIP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
146 lines (127 loc) · 3.64 KB
/
.travis.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
144
145
146
---
language: python
python:
- "3.6"
env:
matrix:
- QUIP_ARCH=linux_x86_64_gfortran QUIP_INC=Makefile.nogap.inc TRAVIS_GAP=0
- QUIP_ARCH=linux_x86_64_gfortran QUIP_INC=Makefile.inc TRAVIS_GAP=1
- QUIP_ARCH=linux_x86_64_gfortran_openmp QUIP_INC=Makefile.nogap.inc TRAVIS_GAP=0
- QUIP_ARCH=linux_x86_64_gfortran_openmp QUIP_INC=Makefile.inc TRAVIS_GAP=1
stages:
- test
- documentation
- release
- docker
git:
depth: 10
addons:
apt:
update: true
packages:
- gfortran
- libblas-dev
- liblapack-dev
- openmpi-bin
- libopenmpi-dev
- netcdf-bin
- libnetcdf-dev
- libhdf5-serial-dev
- python-numpy
before_install:
# Clone the private gap repository using deploy key
- |
if [[ $TRAVIS_GAP == 1 ]]; then
bash travis/get_gap.sh
fi
# Make the build directory manually for rules
- mkdir -p build/${QUIP_ARCH}
# Copy the rules file (rather than make config)
- cp travis/${QUIP_INC} build/${QUIP_ARCH}/Makefile.inc
install:
- pip install ase
- pip install src/f90wrap
script: # Compile QUIP, libquip and quippy.
# Quippy should have built successfully -> start tests
- make
- make libquip
- make quippy
# Sometimes file limit is 64000 and read_loop reads and writes this many
# files causing the build to time out
- ulimit -n 256
- make test
jobs:
include:
- stage: documentation
env: # serial version of QUIP
- QUIP_ARCH=linux_x86_64_gfortran QUIP_INC=Makefile.inc TRAVIS_GAP=1
install: # packages for building docs
- sudo apt-get install -y
libgsl0-dev
libxpm-dev
pandoc
- pip install
f90wrap
ase
docutils==0.14
sphinx
sphinx-rtd-theme
nbsphinx
numpydoc
pygments==2.5.2
# needed to nbconvert ipynb files and to process the rst files
- pip install 'nbconvert[execute]' 'ipython<6'
# quippy is working, install it
- make &> /dev/null
- make install-quippy &> /dev/null
# Install atomeye from src
- export QUIP_ROOT=`pwd`
- git clone https://github.com/jameskermode/AtomEye.git src/AtomEye
- cd src/AtomEye/Python
- python setup.py install
- cd ../../..
script:
- cd doc
- make html
deploy:
provider: pages
local_dir: doc/_build/html
skip-cleanup: true
github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
keep-history: true
on:
branch: public
- stage: release
if: fork = false
name: "Trigger for a new release of GAP"
before_install: skip
install: skip
script: skip
deploy:
provider: script
script: bash travis/trigger_gap_release.sh
on:
branch: public
- stage: docker
if: fork = false
name: "Trigger for building docker images"
before_install: skip
install: skip
script: skip
deploy:
provider: script
script: bash travis/trigger_quip_docker.sh
on:
branch: public
exclude:
- if: type = pull_request
env: QUIP_ARCH=linux_x86_64_gfortran QUIP_INC=Makefile.inc TRAVIS_GAP=1
- if: type = pull_request
env: QUIP_ARCH=linux_x86_64_gfortran_openmp QUIP_INC=Makefile.inc TRAVIS_GAP=1
- if: fork = true
env: QUIP_ARCH=linux_x86_64_gfortran_openmp QUIP_INC=Makefile.inc TRAVIS_GAP=1
- if: fork = true
env: QUIP_ARCH=linux_x86_64_gfortran QUIP_INC=Makefile.inc TRAVIS_GAP=1
notifications:
email: