aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2018-04-12 15:12:22 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-04-18 10:57:32 +0200
commitbe414423d7474c0e23194e5552996fa3f6eefc18 (patch)
tree4336d540afa2a6b4f033eb1975722f381176a0e5
parentabd1a1f372c0fe3ce1a05a0800258c3bb01a12be (diff)
downloadlibssh-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>
-rw-r--r--.gitlab-ci.yml145
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/