-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
/
config.yml
86 lines (84 loc) · 3.54 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
version: 2
workflows:
version: 2
linux-builds:
jobs:
- build-i686
- build-x86_64
jobs:
build-i686:
docker:
- image: circleci/python:2.7
environment:
ARCH: i686
JULIA_CPU_THREADS: 4
JULIA_TEST_MAXRSS_MB: 800
steps: &steps
- run: | # install build dependencies
sudo apt-get install -y g++-6-multilib gfortran-6-multilib \
time ccache bar &&
for prog in gcc g++ gfortran; do
sudo ln -s /usr/bin/$prog-6 /usr/local/bin/$prog;
done
- checkout # circle ci code checkout step
# (FIXME: need to unset url."ssh:https://[email protected]".insteadOf or libgit2 tests fail)
- run: | # checkout merge commit, set versioning info and Make.user variables
git config --global --unset url."ssh:https://[email protected]".insteadOf &&
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
git remote set-url origin [email protected]:JuliaLang/julia.git &&
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-{{ arch }}-{{ checksum "/tmp/weeknumber" }}
- run: | # compile julia deps
contrib/download_cmake.sh &&
make -j3 -C deps || make
- run: | # build julia, output ccache stats when done
make -j3 release &&
make prefix=/tmp/julia install &&
ccache -s &&
make build-stats
- run: | # move source tree out of the way, run tests from install tree
COMMIT_RANGE=$(echo "${CIRCLE_COMPARE_URL}" | cut -d/ -f7) &&
[[ "$COMMIT_RANGE" != *"..."* ]] && COMMIT_RANGE="${COMMIT_RANGE}...${COMMIT_RANGE}";
FILES_CHANGED=$(git diff --name-only $COMMIT_RANGE -- || git ls-files) &&
cd .. &&
mv project julia-src &&
/tmp/julia/bin/julia -e 'Base.require(Main, :InteractiveUtils).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 &&
if [ $(echo "$FILES_CHANGED" | grep -cv '^doc/') -gt 0 ]; then
/tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip Sockets | bar -i 30 &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online OldPkg/pkg Pkg/pkg download;
fi &&
popd &&
mkdir /tmp/embedding-test &&
make check -C /tmp/julia/share/julia/test/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-{{ arch }}-{{ checksum "/tmp/weeknumber" }}
paths:
- ~/.ccache
build-x86_64:
docker:
- image: circleci/python:2.7
environment:
ARCH: x86_64
JULIA_CPU_THREADS: 4
JULIA_TEST_MAXRSS_MB: 800
steps: *steps