forked from PrincetonUniversity/VST
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
129 lines (121 loc) · 3.4 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
# IF YOU MODIFY THIS FILE to add or remove "make" targets,
# please also modify the travis: target in the Makefile.
# They're not automatically coordinated, the reason being that
# we want to split the Travis build into multiple jobs.
dist: trusty
sudo: required
language: ocaml
cache:
apt: true
directories:
- $HOME/.opam
- build/compcert
- build/sepcomp
- build/msl
- build/veric
- build/floyd
- build_beta/compcert
- build_beta/sepcomp
- build_beta/msl
- build_beta/veric
- build_beta/floyd
addons:
apt:
sources:
- avsm
packages:
- opam
- aspcud
env:
global:
- NJOBS=2
- COMPILER="4.07.1"
- COQ_VERSION="8.12.2"
- NEXT_VERSION="8.12.2"
- COMPCERT_VERSION="3.8"
branches:
only:
- master
notifications:
email:
recipients:
git:
depth: 3
submodules: false
# Use sed to replace the SSH URL with the public URL, then initialize submodules
before_install:
- sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
- git submodule update --init --recursive
install:
- opam --version
- "[ -e .opam ] || opam init -j ${NJOBS} -n -y --compiler=${COMPILER}"
- opam switch list
- eval $(opam config env)
- opam config list
- opam config var root
- opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev || true
- opam repo add coq-released https://coq.inria.fr/opam/released
- opam repo add --yes prerelease file://$(pwd)/opam-prerelease
- opam update
- opam update prerelease
- opam repo list
- opam show coq
- opam show coq-compcert
- opam show coq-compcert-32
- travis_wait 15 opam install -j ${NJOBS} -y coq=${COQ_VERSION} ${EXTRA_OPAM}
- opam install -j ${NJOBS} -y coq=${COQ_VERSION} coq-ext-lib coq-flocq
- travis_wait 15 opam install -j ${NJOBS} -y coq-compcert=${COMPCERT_VERSION}
- travis_wait 15 opam install -j ${NJOBS} -y coq-compcert-32=${COMPCERT_VERSION}
- opam list
- file `which coqc`
# - WC=`which coqc`
# - ls -l `dirname ${WC}`
stages:
- setup
- test
script: echo "No script"
jobs:
include:
- stage: setup
name: "Floyd 32-bit"
script: ./.travis-script floyd
env: BITSIZE=32
- stage: setup
name: "Floyd 64-bit"
script: ./.travis-script floyd
env: BITSIZE=64
- stage: test
name: "Progs 32-bit"
script: ./.travis-script progs
env: BITSIZE=32
- stage: test
name: "Progs 64-bit"
script: ./.travis-script progs64
env: BITSIZE=64
- stage: test
name: "SHA-HMAC 32-bit"
script: ./.travis-script sha-hmac
env: BITSIZE=32
- stage: test
name: "Mailbox 32-bit"
script: ./.travis-script mailbox
env: BITSIZE=32
- stage: test
name: "VSUpile 32-bit"
script: ./.travis-script VSUpile
env: BITSIZE=32
# script:
# - echo 'Building VST (Coq beta)...' && echo -en 'travis_fold:start:VST.build_beta\\r'
# - opam switch create coq_beta ocaml-base-compiler.4.07.1 || true
# - opam switch coq_beta
# - eval $(opam config env)
# - opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev || true
# - opam update
# - opam install -j ${NJOBS} -y coq=${NEXT_VERSION} ${EXTRA_OPAM}
# - git show --format='COMMIT %H %ci' -s; coqc -v
# - mkdir -p build_beta
# - for i in `ls -a | grep -Ev '^(build_beta|\.\.?)$'`; do rsync -rc $i build_beta; done
# - cd build_beta; make -j ${NJOBS} TIMINGS=simple IGNORECOQVERSION=true floyd calibrate
# - echo -en 'travis_fold:end:VST.build_beta\\r'
# env: BITSIZE=32