diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-04-12 15:12:22 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-04-18 10:57:32 +0200 |
commit | be414423d7474c0e23194e5552996fa3f6eefc18 (patch) | |
tree | 4336d540afa2a6b4f033eb1975722f381176a0e5 /.gitlab-ci.yml | |
parent | abd1a1f372c0fe3ce1a05a0800258c3bb01a12be (diff) | |
download | libssh-be414423d7474c0e23194e5552996fa3f6eefc18.tar.gz libssh-be414423d7474c0e23194e5552996fa3f6eefc18.tar.xz libssh-be414423d7474c0e23194e5552996fa3f6eefc18.zip |
Introduce a gitlab CI for centos7, debian and Fedora
This introduces builds for:
centos7 with openssl 1.0.x (x86-64)
fedora28 with openssl 1.1.x (x86-64)
fedora28 with libgcrypt (x86-64) - disabled
debian with openssl 1.0.x (aarch64)
address-sanitizer (gcc) - disabled
undefined-sanitizer (gcc)
static-analyzer (clang)
See https://gitlab.com/libssh/libssh-mirror/
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..68c3b071 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,145 @@ +variables: + BUILD_IMAGES_PROJECT: libssh/build-images + FEDORA_BUILD: buildenv-fedora + CENTOS7_BUILD: buildenv-centos7 + +debian/openssl_1.0.x/aarch64: + script: + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + make -j$(nproc) && ctest --output-on-failure + tags: + - aarch64 + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +# torture_auth fails on centos7 docker images, so we don't use -DWITH_CLIENT_TESTING=ON +centos7/openssl_1.0.x/x86-64: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD + script: + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +fedora/openssl_1.1.x/x86-64: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD + script: + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_CLIENT_TESTING=ON -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +# Address sanitizer doesn't mix well with LD_PRELOAD used in the testsuite +.fedora/address-sanitizer: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD + script: + - export CFLAGS="-fsanitize=address -g -O2" + - export LDFLAGS="-fsanitize=address -static-libasan" + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_CLIENT_TESTING=ON -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +fedora/undefined-sanitizer: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD + script: + - export CFLAGS="-fsanitize=undefined -fsanitize=null -fsanitize=alignment -fno-sanitize-recover" + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_CLIENT_TESTING=ON -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +fedora/static-analysis: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD + script: + - export CCC_CC=clang + - export CCC_CXX=clang++ + - mkdir build && cd build && scan-build cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_CLIENT_TESTING=ON -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang .. && + scan-build --status-bugs -o scan make -j$(nproc) + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/scan + +# That is a specific runner that we cannot enable universally. +# We restrict it to builds under the $BUILD_IMAGES_PROJECT project. +freebsd/x86-64: + image: + script: + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug + -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make && ctest --output-on-failure + make -j$(nproc) && ctest --output-on-failure + tags: + - freebsd + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ + +## Disabled as the test suite hangs due to: +## https://dev.gnupg.org/T3731 +.fedora/libgcrypt/x86-64: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD + script: + - mkdir build && cd build && cmake -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Debug -DWITH_GCRYPT=1 + -DWITH_CLIENT_TESTING=ON -DWITH_SSH1=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON + -DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/ |