forked from secure-software-engineering/phasar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
50 lines (47 loc) · 1.52 KB
/
.gitlab-ci.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
image: debian:sid-slim
stages:
- build
# install the necessary build tools
before_script:
- apt update && apt-get install -y build-essential clang-5.0 libclang-5.0-dev llvm-5.0 libboost1.62-all-dev sqlite3 libsqlite3-dev bear python3 git cmake zlib1g-dev libncurses5-dev graphviz doxygen libcurl4-gnutls-dev libboost1.62-dev libboost-dev libmysqlcppconn-dev
- export PATH="/usr/lib/llvm-5.0/bin:$PATH"
- git submodule update --init --recursive
build:
stage: build
# build all interesting targets
script:
- mkdir -p build
- cd build
- echo "checking RAM"
- cat /proc/meminfo
- echo "checking CPU(s)"
- cat /proc/cpuinfo
- cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DPHASAR_BUILD_UNITTESTS=ON -DPHASAR_BUILD_DOC=ON ..
- make -j4
# Fix the unit tests first
# - make test
# Install Phasar and test the examples
- make install
- cd /builds/pdschbrt/sse_dfa_llvm/examples/llvm-hello_world/
- make all
- cd /builds/pdschbrt/sse_dfa_llvm/examples/plugins/
- make all
# Jump back to save the artifacts
- cd /builds/pdschbrt/sse_dfa_llvm/build
only:
- master
- develop
- restructure
tags:
- shared
# save the documentation and binary
artifacts:
name: "PhasarFramework-$CI_BUILD_ID-$CI_BUILD_REF"
expire_in: 1 week
paths:
- build/docs/*
- build/phasar
# depending on the build setup it's a good idea to cache outputs to reduce the build time
cache:
paths:
- build/lib/