mirror of
https://github.com/open62541/open62541.git
synced 2025-06-03 04:00:21 +00:00
366 lines
9.3 KiB
YAML
366 lines
9.3 KiB
YAML
language: c
|
|
sudo: required
|
|
|
|
env:
|
|
global:
|
|
# GITAUTH:
|
|
- secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo=
|
|
- PYTHON=python2
|
|
# For tag builds we do not have the base branch in TRAVIS_BRANCH, therefore store it in BRANCH_FOR_TAG
|
|
- BRANCH_FOR_TAG=$(git ls-remote origin | sed -n "\|$TRAVIS_COMMIT\s\+refs/heads/|{s///p}")
|
|
|
|
|
|
dist: trusty
|
|
|
|
# Make sure we have the git tags. Travis uses shallow checkout where git describe does not work
|
|
git:
|
|
depth: false
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
#
|
|
# gcc-4.8 (trusty) full host and cross build with tests:
|
|
# doc, cert, cross-mingw32, cross-mingw64, cross-linux32, cross-raspi, linux64,
|
|
# amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal
|
|
- os: linux
|
|
compiler: gcc-4.8
|
|
addons:
|
|
apt:
|
|
sources:
|
|
# see https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- mingw-w64
|
|
- gcc-mingw-w64-i686
|
|
- gcc-mingw-w64-x86-64
|
|
- binutils-mingw-w64-i686
|
|
- g++-multilib
|
|
- cmake
|
|
# doc
|
|
- python-sphinx
|
|
- graphviz
|
|
- texlive-generic-extra
|
|
- texlive-fonts-recommended
|
|
- texlive-latex-extra
|
|
- latexmk
|
|
# tests
|
|
- check
|
|
- libsubunit-dev
|
|
- valgrind
|
|
env:
|
|
- MINGW=true
|
|
#
|
|
# gcc-8 full host build with tests:
|
|
# doc, cert, linux64,
|
|
# amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal
|
|
- os: linux
|
|
compiler: gcc-8
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- gcc-8
|
|
- gcc-8-multilib
|
|
# doc
|
|
- python-sphinx
|
|
- graphviz
|
|
- texlive-generic-extra
|
|
- texlive-fonts-recommended
|
|
- texlive-latex-extra
|
|
- latexmk
|
|
# tests
|
|
- check
|
|
- libsubunit-dev
|
|
- valgrind
|
|
#
|
|
# clang-6 full host build with tests:
|
|
# doc, cert, linux64,
|
|
# amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-6.0
|
|
- clang-tidy-6.0
|
|
# doc
|
|
- python-sphinx
|
|
- graphviz
|
|
- texlive-generic-extra
|
|
- texlive-fonts-recommended
|
|
- texlive-latex-extra
|
|
- latexmk
|
|
# tests
|
|
- check
|
|
- libsubunit-dev
|
|
- valgrind
|
|
#
|
|
# clang-6 python-3 full host build with tests:
|
|
# doc, cert, linux64,
|
|
# amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-6.0
|
|
- clang-tidy-6.0
|
|
# doc
|
|
- python3-sphinx
|
|
- graphviz
|
|
- texlive-generic-extra
|
|
- texlive-fonts-recommended
|
|
- texlive-latex-extra
|
|
- latexmk
|
|
# tests
|
|
- check
|
|
- libsubunit-dev
|
|
- valgrind
|
|
env:
|
|
- PYTHON=python3
|
|
#
|
|
# clang-6 python-3 install build and minimal example:
|
|
# linux64, minimal-example
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-6.0
|
|
- clang-tidy-6.0
|
|
env:
|
|
- INSTALL=true
|
|
- PYTHON=python3
|
|
- CXX=clang-6.0
|
|
#
|
|
# gcc-4.8 static code analysis
|
|
- os: linux
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- cppcheck
|
|
env:
|
|
- ANALYZE=true
|
|
#
|
|
# clang-6 static code analysis
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- check
|
|
- libsubunit-dev
|
|
- clang-6.0
|
|
- clang-tidy-6.0
|
|
env:
|
|
- ANALYZE=true
|
|
- PYTHON=python3
|
|
#
|
|
# clang-format code analysis
|
|
# is allowed to fail (see allow_failures)
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-6.0
|
|
- clang-tidy-6.0
|
|
- clang-format-6.0
|
|
env:
|
|
- CLANG_FORMAT=true
|
|
#
|
|
# DOCKER build
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- DOCKER=true
|
|
# #
|
|
# # clang-6 FUZZER build
|
|
# - os: linux
|
|
# compiler: clang-6.0
|
|
# addons:
|
|
# apt:
|
|
# sources:
|
|
# - llvm-toolchain-trusty-6.0
|
|
# - ubuntu-toolchain-r-test
|
|
# packages:
|
|
# - check
|
|
# - libsubunit-dev
|
|
# - clang-6.0
|
|
# - clang-tidy-6.0
|
|
# - libfuzzer-6.0-dev
|
|
# env:
|
|
# - FUZZER=true
|
|
#
|
|
# OSX clang build
|
|
- os: osx
|
|
compiler: clang
|
|
# disable homebrew auto update which takes a lot of time
|
|
env: HOMEBREW_NO_AUTO_UPDATE=1
|
|
cache:
|
|
directories:
|
|
- $HOME/Library/Caches/Homebrew
|
|
#
|
|
# SONAR gcc-4.9 build
|
|
- os: linux
|
|
compiler: gcc-4.9
|
|
addons:
|
|
sonarcloud:
|
|
organization: open62541
|
|
branches:
|
|
- master
|
|
- sonarcloud
|
|
env:
|
|
- SONAR=true
|
|
cache:
|
|
directories:
|
|
- '$HOME/.sonar/cache'
|
|
allow_failures:
|
|
#
|
|
# MacOS X
|
|
- env:
|
|
- HOMEBREW_NO_AUTO_UPDATE=1
|
|
# clang-format code analysis
|
|
- env:
|
|
- CLANG_FORMAT=true
|
|
- env:
|
|
- SONAR=true
|
|
|
|
cache:
|
|
pip: true
|
|
apt: true
|
|
directories:
|
|
- $HOME/install
|
|
- $HOME/.cache/pip
|
|
|
|
# combine all the commands into one single command. See https://github.com/travis-ci/travis-ci/issues/1066
|
|
before_install: |
|
|
set -eE
|
|
|
|
errorTrap() {
|
|
last_rv=$?
|
|
|
|
if [ $last_rv -ne 0 ] ; then
|
|
echo ""
|
|
echo ""
|
|
echo "----------------- Error -----------------"
|
|
echo ""
|
|
echo "---- Check additional output above!! ----"
|
|
# Wait a bit until the stdout is flushed
|
|
for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
|
|
fi
|
|
|
|
exit $last_rv
|
|
}
|
|
trap errorTrap 0
|
|
|
|
# set paths for locally installed libs (like liburcu)
|
|
export LOCAL_PKG=$HOME/install
|
|
mkdir -p $LOCAL_PKG/lib
|
|
mkdir -p $LOCAL_PKG/include
|
|
mkdir -p $LOCAL_PKG/bin
|
|
export LIBRARY_PATH=$LOCAL_PKG/lib:$LIBRARY_PATH
|
|
export C_INCLUDE_PATH=$LOCAL_PKG/include:$C_INCLUDE_PATH
|
|
export CPLUS_INCLUDE_PATH=$LOCAL_PKG/include:$CPLUS_INCLUDE_PATH
|
|
export PKG_CONFIG_PATH=$LOCAL_PKG/lib/pkgconfig:$PKG_CONFIG_PATH
|
|
export PATH=$LOCAL_PKG:$LOCAL_PKG/bin:$PATH
|
|
export CMAKE_PREFIX_PATH=$LOCAL_PKG:CMAKE_PREFIX_PATH
|
|
# set local path for python packages
|
|
export PATH=$PATH:$HOME/.local/bin # linux
|
|
export PATH=$PATH:$HOME/Library/Python #OS X
|
|
export PATH=$PATH:$HOME/Library/Python/2.7/bin #OS X
|
|
|
|
if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_before_install.sh; fi
|
|
if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_before_install.sh; fi
|
|
|
|
script: |
|
|
set -eE
|
|
|
|
errorTrap() {
|
|
last_rv=$?
|
|
|
|
if [ $last_rv -ne 0 ] ; then
|
|
echo ""
|
|
echo ""
|
|
echo "----------------- Error -----------------"
|
|
echo ""
|
|
echo "---- Check additional output above!! ----"
|
|
# Wait a bit until the stdout is flushed
|
|
for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
|
|
fi
|
|
|
|
exit $last_rv
|
|
}
|
|
trap errorTrap 0
|
|
|
|
if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_script.sh; fi
|
|
if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_script.sh; fi
|
|
|
|
after_success: |
|
|
set -eE
|
|
|
|
errorTrap() {
|
|
last_rv=$?
|
|
|
|
if [ $last_rv -ne 0 ] ; then
|
|
echo ""
|
|
echo ""
|
|
echo "----------------- Error -----------------"
|
|
echo ""
|
|
echo "---- Check additional output above!! ----"
|
|
# Wait a bit until the stdout is flushed
|
|
for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
|
|
fi
|
|
|
|
exit $last_rv
|
|
}
|
|
trap errorTrap 0
|
|
|
|
if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_after_success.sh; fi
|
|
# Sleep to flush travis output
|
|
echo == Build success ==
|
|
sleep 5
|
|
|
|
after_failure: |
|
|
# Sleep to flush travis output
|
|
echo == Build failed ==
|
|
sleep 5
|
|
|
|
deploy:
|
|
provider: releases
|
|
api_key:
|
|
# Uses token from user open62541-travis-release (managed by @Pro). Sets GITAUTH
|
|
secure: dtn6ayBGoWzeVMM6xYpSRZly1XOhS/2jdiwEHd0hYZIr0dNq18CxTiqbGrUwW1JsSiXoHaGSZhUVr06O1P/tfC3Ma6i7ugyun+yXz6FdZiwirjURI8HQe+XwR4Ui3hqgQSOHLMK/xtOkjM28AN1jg9u3//Zep69xJVIGAqNT0bE=
|
|
file:
|
|
- open62541-win32.zip
|
|
- open62541-win64.zip
|
|
- open62541-linux32.tar.gz
|
|
- open62541-linux64.tar.gz
|
|
- open62541-raspberrypi.tar.gz
|
|
- open62541.c
|
|
- open62541.h
|
|
file_glob: true
|
|
skip_cleanup: true
|
|
on:
|
|
repo: open62541/open62541
|
|
tags: true
|
|
condition: $MINGW=true
|