forked from open62541/open62541
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
136 lines (136 loc) · 6.7 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
130
131
132
133
134
135
136
language: c
compiler:
- gcc
- clang
env:
global:
- secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo=
- secure: ehswgymGXPM3UINhOOnfSByMnrRNTixeT2vEV+z3kXy3WHew/O1yt9GxaYGrUhJPg4+5chAQgjYmezO1x3/CUKFgeHQUmVTFWEzfy1kL1JVjO+ufYyJDnbY+x3OmyNmMYcef2J5MAuUS2C1KFvIxtLsljVK+gpe4LcylkCIF/3Y=
addons:
coverity_scan:
project:
name: acplt/open62541
description: Open-source OPC UA
notification_email: [email protected]
build_command_prepend: mkdir build && cd build && cmake ..
build_command: make
branch_pattern: coverity_scan
before_install:
- sudo apt-get install binutils-mingw-w64-i686 gcc-mingw-w64-i686 mingw-w64
- sudo add-apt-repository ppa:kalakris/cmake -y
- sudo apt-get update -qq
- sudo apt-get install -qq --no-install-recommends build-essential cmake python-lxml gcc-multilib graphviz doxygen wget zip
- sudo apt-get install libsubunit-dev #for check_0.10.0
- wget http://ftp.de.debian.org/debian/pool/main/c/check/check_0.10.0-2_amd64.deb
- sudo dpkg -i check_0.10.0-2_amd64.deb
- wget https://launchpad.net/ubuntu/+source/liburcu/0.8.5-1ubuntu1/+build/6513813/+files/liburcu2_0.8.5-1ubuntu1_amd64.deb
- wget https://launchpad.net/ubuntu/+source/liburcu/0.8.5-1ubuntu1/+build/6513813/+files/liburcu-dev_0.8.5-1ubuntu1_amd64.deb
- sudo dpkg -i liburcu2_0.8.5-1ubuntu1_amd64.deb
- sudo dpkg -i liburcu-dev_0.8.5-1ubuntu1_amd64.deb
- sudo pip install cpp-coveralls
- sudo pip install Pygments
- sudo pip install sphinx
- sudo pip install breathe
- sudo pip install sphinx_rtd_theme
script:
- echo "Checking the applicability of patches"
- # ./tools/.checkPorts.sh
- echo "Documentation and certificate build"
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCUMENTATION=ON -DGENERATE_SELFSIGNED=ON ..
- make doc
- make selfsigned
- cp -r doc ..
- cp server_cert.der ..
- echo "Testing builds"
- cd .. && rm build -rf && mkdir -p build && cd build
- echo "Cross compile release build for MinGW 32 bit"
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake -DENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
- make
- cp ../README.md .
- cp ../LICENSE .
- cp ../AUTHORS .
- cp -r ../doc .
- cp ../server_cert.der .
- zip -r open62541-win32.zip doc server_cert.der LICENSE AUTHORS README.md server_static.exe server.exe client.exe client_static.exe libopen62541.dll libopen62541.dll.a open62541.h open62541.c
- cp open62541-win32.zip ..
- cd .. && rm build -rf && mkdir -p build && cd build
- echo "Cross compile release build for MinGW 64 bit"
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake -DENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
- make
- cp ../README.md .
- cp ../LICENSE .
- cp ../AUTHORS .
- cp -r ../doc .
- cp ../server_cert.der .
- zip -r open62541-win64.zip doc server_cert.der LICENSE AUTHORS README.md server_static.exe server.exe client.exe client_static.exe libopen62541.dll libopen62541.dll.a open62541.h open62541.c
- cp open62541-win64.zip ..
- cd .. && rm build -rf && mkdir -p build && cd build
- echo "Cross compile release build for 32-bit linux"
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-gcc-m32.cmake -DENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
- make
- tar -pczf open62541-linux32.tar.gz ../doc ../server_cert.der ../LICENSE ../AUTHORS ../README.md server_static server client_static client libopen62541.so open62541.h open62541.c
- cp open62541-linux32.tar.gz ..
- cd .. && rm build -rf && mkdir -p build && cd build
- echo "Compile release build for 64-bit linux"
- cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_AMALGAMATION=ON -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
- make
- tar -pczf open62541-linux64.tar.gz ../doc ../server_cert.der ../LICENSE ../AUTHORS ../README.md server_static server client_static client libopen62541.so open62541.h open62541.c
- cp open62541-linux64.tar.gz ..
- cp open62541.h .. #copy single file-release
- cp open62541.c .. #copy single file-release
- echo "Upgrade to gcc 4.8"
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- sudo apt-get update -qq
- sudo apt-get install -qq gcc-4.8 g++-4.8 valgrind
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
- sudo update-alternatives --config gcc
- echo "Compile multithreaded version"
- echo "Building the C++ example"
- gcc -std=c99 -c open62541.c
- g++-4.8 ../examples/server.cpp -I./ open62541.o -o cpp-server
- cd .. && rm build -rf && mkdir -p build && cd build
- cmake -DENABLE_MULTITHREADING=ON -DBUILD_EXAMPLESERVER=ON ..
- make
- cd .. && rm build -rf && mkdir -p build && cd build
- echo "Debug build and unit tests (64 bit)"
- cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_DEMO_NODESET=ON -DBUILD_UNIT_TESTS=ON -DBUILD_EXAMPLESERVER=ON -DENABLE_COVERAGE=ON ..
- make && make test
- echo "Run valgrind to see if the server leaks memory (just starting up and closing..)"
- if [[ ! ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "clang") ]]; then
(valgrind --error-exitcode=3 ./server & export pid=$!; sleep 2; kill -INT $pid; wait $pid);
(coveralls --gcov /usr/bin/gcov-4.8 -E '.*\.h' -E '.*CMakeCXXCompilerId\.cpp' -E '.*CMakeCCompilerId\.c' -r ../ ; exit 0);
fi
- cd ..
after_success:
- if [[ ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "gcc" && ${TRAVIS_BRANCH} == "master") ]]; then ./tools/.deployGH.sh; fi
- if [[ ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "gcc" && ${TRAVIS_BRANCH} == "master") ]]; then ./tools/.coverity.sh; fi
before_deploy:
- rm build -rf && mkdir -p build && cd build
- echo "Cross compile release build for Raspberry Pi"
- cd ~
- git clone https://github.com/raspberrypi/tools
- cd -
- export PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-rpi64.cmake -DENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
- make
- tar -pczf open62541-raspberrypi.tar.gz ../doc ../server_cert.der ../LICENSE ../AUTHORS ../README.md server_static server client_static client libopen62541.so open62541.h open62541.c
- cp open62541-raspberrypi.tar.gz ..
- cd ..
deploy:
provider: releases
api_key:
secure: PKCoA7MBRtHloIbNF4Qj5LQyCafjekfVeFXlMBd9KmC0ynNuef+D7nn38f/jo25/b0Ii7r+hgslkQPezbKyEqo2zcCB8Pn8TWau2hbzKM/dUCPoN90HVaQcRjUi8P2Y+QkouwyPWSujBL35/X5QiAntRotCSbZx4fkyiN8cU95o=
file:
- open62541-win32.zip
- open62541-win64.zip
- open62541-linux32.tar.gz
- open62541-linux64.tar.gz
- open62541-raspberrypi.tar.gz
- open62541.c
- open62541.h
skip_cleanup: true
on:
tags: true
condition: $CC = gcc