-
Notifications
You must be signed in to change notification settings - Fork 62
/
.travis.yml
115 lines (107 loc) · 3.62 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
sudo: required
# Normally, travis tries `git submodule update --init --recursive`, but
# that fails for us right now due to some submodules from `macaw`. We
# only really care about one recursive submodule, so we do the update
# manually in the `script` section.
git:
submodules: false
depth: 3
stages:
- build
- test
- test s2n
stage: build
os: linux
dist: xenial
language: haskell
cabal: 2.4
ghc:
- 8.6.5
- 8.6.4
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- dist-newstyle
- bin
install:
- git submodule update --init
- (pushd deps/abcBridge && git submodule update --init && popd)
script:
- cabal new-update
# `libabc.a` is built in by `cabal configure`, not by `cabal build`.
# caching `dist-newstyle` means it must be manually built each time
- (pushd deps/abcBridge && scripts/build-abc.sh X86_64 Linux --init && popd)
# Ideally, we'd like to pass --ghc-options=-Werror to cabal build.
# However, this currently enables -Werror for all dependencies as well.
# See: https://github.com/haskell/cabal/issues/3883
- tee -a cabal.project > /dev/null < cabal.project.ci
- cabal new-build -j saw jss
- cp `cabal new-exec --verbose=silent -- sh -c 'which saw'` bin
- cp `cabal new-exec --verbose=silent -- sh -c 'which jss'` bin
jobs:
include:
- stage: test
addons:
apt:
packages:
- openjdk-8-jdk
- yasm
before_install:
- sudo add-apt-repository -y ppa:sri-csl/formal-methods
- sudo apt-get update -q
- sudo apt-get install -y yices2
- wget -t 3 https://github.com/Z3Prover/z3/releases/download/z3-4.8.7/z3-4.8.7-x64-ubuntu-16.04.zip
- unzip z3-4.8.7-x64-ubuntu-16.04.zip
- cp z3-4.8.7-x64-ubuntu-16.04/bin/z3 bin
script:
- cd intTests
- for t in test0001 test0019_jss_switch_statement test_crucible_jvm test_ecdsa test_examples test_issue108 test_tutorial1 test_tutorial2 test_tutorial_w4; do echo $t >> disabled_tests.txt; done
- BIN=$TRAVIS_BUILD_DIR/bin RT_JAR=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar LOUD=true ./runtests.sh
- sh -c "! grep '<failure>' results.xml"
# jobs share the cache if they have identical parameters, including
# identical environmental variables. In order to share the cache with the
# build job, each `s2n` test job exports environment variables manually,
# instead of using the `env` key.
- &s2n-test-staging
stage: test s2n
name: hmac
addons:
apt:
packages:
- clang-3.9
- llvm-3.9
install:
# - git clone https://github.com/awslabs/s2n.git
- git clone https://github.com/GaloisInc/s2n.git
- mkdir -p s2n/test-deps/saw/bin
- cp bin/saw s2n/test-deps/saw/bin
- cd s2n
- git checkout 90b8913a01c6421444d19aaab798d413872cf6f0
before_script:
- export TESTS=sawHMAC
script:
- source codebuild/bin/s2n_setup_env.sh
- SAW=true SAW_INSTALL_DIR=tmp-saw travis_retry codebuild/bin/s2n_install_test_dependencies.sh
- codebuild/bin/s2n_codebuild.sh
- <<: *s2n-test-staging
name: drbg
before_script:
- export TESTS=sawDRBG
- <<: *s2n-test-staging
name: sike
before_script:
- export TESTS=sawSIKE
- <<: *s2n-test-staging
name: bike
before_script:
- export TESTS=sawBIKE
- export S2N_LIBCRYPTO=openssl-1.0.2
- <<: *s2n-test-staging
name: tls
before_script:
- export TESTS=tls
- <<: *s2n-test-staging
name: hmac failure
before_script:
- export TESTS=sawHMACFailure