forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.yml
80 lines (78 loc) · 3.07 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
version: 2
workflows:
version: 2
linux-builds:
jobs:
- build-i686
- build-x86_64
jobs:
build-i686:
docker:
- image: circleci/python:2.7
environment:
JULIA_CPU_CORES: 6
JULIA_TEST_MAXRSS_MB: 800
ARCH: i686
steps: &steps
- run: | # install build dependencies
sudo apt-get install -y g++-4.8-multilib gfortran-4.8-multilib \
time ccache bar &&
for prog in gcc g++ gfortran; do
sudo ln -s /usr/bin/$prog-4.8 /usr/local/bin/$prog;
done
- checkout # circle ci code checkout step
# (FIXME: need to unset url."ssh://[email protected]".insteadOf or libgit2 tests fail)
- run: | # checkout merge commit, set versioning info and Make.user variables
git config --global --unset url."ssh://[email protected]".insteadOf &&
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
git fetch origin +refs/pull/$(basename $CIRCLE_PULL_REQUEST)/merge &&
git checkout -qf FETCH_HEAD;
fi &&
make -C base version_git.jl.phony &&
echo "override ARCH = $ARCH" | tee -a Make.user &&
for var in FORCE_ASSERTIONS LLVM_ASSERTIONS USECCACHE NO_GIT; do
echo "override $var = 1" | tee -a Make.user;
done &&
echo "$ARCH $HOME $(date +%Y%W)" | tee /tmp/weeknumber
- restore_cache: # silly to take a checksum of the tag file here instead of
keys: # its contents but this is the only thing that works on circle
- ccache-{{ checksum "/tmp/weeknumber" }}
- run: | # compile julia deps
contrib/download_cmake.sh &&
make -j8 -C deps || make
- run: | # build julia, output ccache stats when done
make -j8 all &&
make prefix=/tmp/julia install &&
ccache -s &&
make build-stats
- run: | # move source tree out of the way, run tests from install tree
cd .. &&
mv project julia-src &&
/tmp/julia/bin/julia -e 'versioninfo()' &&
/tmp/julia/bin/julia --sysimage-native-code=no -e 'true' &&
/tmp/julia/bin/julia-debug --sysimage-native-code=no -e 'true' &&
pushd /tmp/julia/share/julia/test &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip socket | bar -i 30 &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online download pkg &&
popd &&
mkdir /tmp/embedding-test &&
make check -C /tmp/julia/share/doc/julia/examples/embedding \
JULIA=/tmp/julia/bin/julia BIN=/tmp/embedding-test \
"$(cd julia-src && make print-CC)" &&
mv julia-src project
# - run: cd project && make -C doc deploy
# - run:
# command: sudo dmesg
# when: on_fail
- save_cache:
key: ccache-{{ checksum "/tmp/weeknumber" }}
paths:
- ~/.ccache
build-x86_64:
docker:
- image: circleci/python:2.7
environment:
JULIA_CPU_CORES: 6
JULIA_TEST_MAXRSS_MB: 800
ARCH: x86_64
steps: *steps