diff --git a/.github/labeler.yml b/.github/labeler.yml index 8a786604c3..d89b9b89d4 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -46,7 +46,6 @@ CI: - all: ['.cirrus.yml'] - all: ['.github/**'] - all: ['appveyor.yml'] -- all: ['zuul.d/**'] cmake: - all: ['**/CMakeLists.txt'] diff --git a/scripts/copyright.pl b/scripts/copyright.pl index 78bf049885..c83b7ebbde 100755 --- a/scripts/copyright.pl +++ b/scripts/copyright.pl @@ -43,8 +43,6 @@ my %skiplist = ( "LICENSES/curl.txt" => "", "COPYING" => "", - # an empty control file - "zuul.d/playbooks/.zuul.ignore" => "", ); sub scanfile { diff --git a/scripts/zuul/before_script.sh b/scripts/zuul/before_script.sh deleted file mode 100755 index d1e4e438bc..0000000000 --- a/scripts/zuul/before_script.sh +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/bash -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### -set -eo pipefail - -autoreconf -fi - -if [ "$NGTCP2" = yes ]; then - if [ "$TRAVIS_OS_NAME" = linux -a "$GNUTLS" ]; then - cd $HOME - git clone --depth 1 https://gitlab.com/gnutls/nettle.git - cd nettle - ./.bootstrap - ./configure LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --disable-documentation --prefix=$HOME/ngbuild - make - make install - - cd $HOME - git clone --depth 1 -b 3.7.4 https://gitlab.com/gnutls/gnutls.git pgtls - cd pgtls - ./bootstrap - ./configure PKG_CONFIG_PATH=$HOME/ngbuild/lib/pkgconfig LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --with-included-libtasn1 --with-included-unistring --disable-guile --disable-doc --disable-tools --without-zstd --disable-psk-authentication --prefix=$HOME/ngbuild - make - make install - else - cd $HOME - git clone --depth 1 -b OpenSSL_1_1_1j+quic https://github.com/quictls/openssl possl - cd possl - ./config enable-tls1_3 --prefix=$HOME/ngbuild - make - make install_sw - fi - - cd $HOME - git clone --depth 1 https://github.com/ngtcp2/nghttp3 - cd nghttp3 - autoreconf -i - ./configure --prefix=$HOME/ngbuild --enable-lib-only - make - make install - - cd $HOME - git clone --depth 1 https://github.com/ngtcp2/ngtcp2 - cd ngtcp2 - autoreconf -i - if test -n "$GNUTLS"; then - WITHGNUTLS="--with-gnutls" - fi - ./configure PKG_CONFIG_PATH=$HOME/ngbuild/lib/pkgconfig LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --prefix=$HOME/ngbuild --enable-lib-only $WITHGNUTLS - make - make install -fi - -if [ "$TRAVIS_OS_NAME" = linux -a "$BORINGSSL" ]; then - cd $HOME - git clone --depth=1 https://boringssl.googlesource.com/boringssl - cd boringssl - mkdir -p build - cd ./build - CXX="g++" CC="gcc" cmake .. -GNinja -DCMAKE_BUILD_TYPE=release -DBUILD_SHARED_LIBS=1 - cd .. - cmake --build build - mkdir lib - cp ./build/crypto/libcrypto.so ./lib/ - cp ./build/ssl/libssl.so ./lib/ - echo "BoringSSL lib dir: "`pwd`"/lib" - cmake --build build --target clean - rm -f build/CMakeCache.txt - cd ./build - CXX="g++" CC="gcc" cmake .. -GNinja -DCMAKE_POSITION_INDEPENDENT_CODE=on - cd .. - cmake --build build - export LIBS=-lpthread -fi - -if [ "$TRAVIS_OS_NAME" = linux -a "$QUICHE" ]; then - cd $HOME - git clone --depth=1 --recursive https://github.com/cloudflare/quiche.git - curl https://sh.rustup.rs -sSf | sh -s -- -y - source $HOME/.cargo/env - cd $HOME/quiche - - #### Work-around https://github.com/curl/curl/issues/7927 ####### - #### See https://github.com/alexcrichton/cmake-rs/issues/131 #### - sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml - - cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog - mkdir -v quiche/deps/boringssl/src/lib - ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/ -fi diff --git a/scripts/zuul/script.sh b/scripts/zuul/script.sh deleted file mode 100755 index 4514e97f29..0000000000 --- a/scripts/zuul/script.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### -set -eo pipefail - -autoreconf -fi - -if [ "$T" = "coverage" ]; then - ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2 - make - make TFLAGS=-n test-nonflaky - make "TFLAGS=-n -e" test-nonflaky - tests="1 200 300 500 700 800 900 1000 1100 1200 1302 1400 1502 3000" - make "TFLAGS=-n -t $tests" test-nonflaky - coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -i src -e lib -e tests -e docs -b $PWD/src - coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -e src -i lib -e tests -e docs -b $PWD/lib -fi - -if [ "$T" = "torture" ]; then - ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2 --with-openssl - make - tests="!TLS-SRP !FTP" - make "TFLAGS=-n --shallow=20 -t $tests" test-nonflaky -fi - -if [ "$T" = "debug" ]; then - ./configure --enable-debug --enable-werror $C - make - make examples - if [ -z $NOTESTS ]; then - make test-nonflaky - fi -fi - -if [ "$T" = "debug-bearssl" ]; then - ./configure --enable-debug --enable-werror $C - make - make "TFLAGS=-n !313" test-nonflaky -fi - -if [ "$T" = "novalgrind" ]; then - ./configure --enable-werror $C - make - make examples - make TFLAGS=-n test-nonflaky -fi - -if [ "$T" = "normal" ]; then - if [ $TRAVIS_OS_NAME = linux ]; then - # Remove system curl to make sure we don't rely on it. - # Only done on Linux since we're not permitted to on mac. - sudo rm -f /usr/bin/curl - fi - ./configure --enable-warnings --enable-werror $C - make - make examples - if [ -z $NOTESTS ]; then - make test-nonflaky - fi - if [ -n "$CHECKSRC" ]; then - make checksrc - fi -fi - -if [ "$T" = "cmake" ]; then - mkdir -p build - cd ./build - cmake .. -DCURL_WERROR=ON $C - cd .. - cmake --build build - env TFLAGS="!1139 $TFLAGS" cmake --build build --target test-nonflaky -fi diff --git a/tests/CI.md b/tests/CI.md index 980799b528..7baed83758 100644 --- a/tests/CI.md +++ b/tests/CI.md @@ -92,23 +92,7 @@ The tests are configured in `appveyor.yml`. ### Zuul -[Zuul](https://zuul-ci.org/) is an open source CI tool. A number of Curl tests -are run at [curl.zuul.vexxhost.dev](https://curl.zuul.vexxhost.dev/builds): - -- Source code is formatted according to expectations (`make checksrc`). -- Curl compiled with a number of different TLS configurations (WolfSSL, rustls, -BoringSSL, etc). -- Curl compiled with different C compilers. - -As of November 2021, the tests run (sometimes) but do not run consistently and -do not report results to the GitHub checks runner - you need to manually check -for failures. See [#7522](https://github.com/curl/curl/issues/7522) for more -information. - -As of November 2021 Daniel Stenberg is the only person with administrator -access to the Zuul CI environment. - -These are configured in `zuul.d` and have test runners in `scripts/zuul`. +Not used anymore. ### Circle CI diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml deleted file mode 100644 index 25d2b5e3b6..0000000000 --- a/zuul.d/jobs.yaml +++ /dev/null @@ -1,209 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### - -# The results of each of these jobs can be found at -# https://curl.zuul.vexxhost.dev/builds. As of November 2021 they are not being -# propagated to the GitHub "checks" UI, you need to check for them manually. - ---- -- job: - name: curl-base - abstract: true - pre-run: zuul.d/playbooks/pre.yaml - run: zuul.d/playbooks/run.yaml - post-run: zuul.d/playbooks/post.yaml - nodeset: ubuntu-bionic - timeout: 3600 - vars: - curl_env: - LD_LIBRARY_PATH: /usr/local/lib - # NOTE(mnaser): Workaround to keep existing Travis scripts compatible - TRAVIS_OS_NAME: linux - -- job: - name: curl-normal-with-openssl-gssapi-libssh2-checksrc - parent: curl-base - vars: - curl_env: - T: normal - C: --with-openssl --with-gssapi --with-libssh2 - CHECKSRC: 1 - curl_apt_packages: - - krb5-user - - libssh2-1-dev - - libbrotli-dev - - libzstd-dev - -- job: - name: curl-novalgrind-boringssl-with-openssl - parent: curl-base - vars: - gimme_stable: true - curl_env: - CC: gcc-8 - CXX: g++-8 - T: novalgrind - BORINGSSL: "yes" - C: >- - --with-openssl={{ ansible_user_dir }}/boringssl - LD_LIBRARY_PATH: "{{ ansible_user_dir }}/boringssl/lib:/usr/local/lib" - -- job: - name: curl-novalgrind-ngtcp2-with-openssl - parent: curl-base - vars: - curl_apt_packages: - - libpsl-dev - - libbrotli-dev - - libzstd-dev - curl_env: - CC: gcc-8 - CXX: g++-8 - T: novalgrind - NGTCP2: "yes" - C: >- - --with-openssl={{ ansible_user_dir }}/ngbuild - --with-ngtcp2={{ ansible_user_dir }}/ngbuild - --with-nghttp3={{ ansible_user_dir }}/ngbuild - NOTESTS: - -- job: - name: curl-debug-clang-disable-alt-svc-with-openssl - parent: curl-base - vars: - curl_apt_packages: - - clang-9 - - libpsl-dev - - libbrotli-dev - - libzstd-dev - curl_env: - CC: clang-9 - CXX: clang++-9 - T: debug - C: >- - --with-openssl - --disable-alt-svc - -- job: - name: curl-debug-clang-with-gnutls - parent: curl-base - vars: - curl_apt_packages: - - clang-9 - - libpsl-dev - - libbrotli-dev - - libzstd-dev - - libgnutls28-dev - curl_env: - CC: clang-9 - CXX: clang++-9 - T: debug - C: >- - --with-gnutls - -- job: - name: curl-cmake-boringssl-quiche - parent: curl-base - vars: - gimme_stable: true - curl_apt_packages: - - libpsl-dev - - libbrotli-dev - - libzstd-dev - curl_env: - BORINGSSL: "yes" - QUICHE: "yes" - CC: gcc-8 - CXX: g++-8 - T: cmake - C: >- - -GNinja - -DUSE_QUICHE=1 - -DOPENSSL_ROOT_DIR={{ ansible_user_dir }}/boringssl - -DCURL_BROTLI=1 - -DCURL_ZSTD=1 - TFLAGS: https ftps - PKG_CONFIG_PATH: "{{ ansible_user_dir }}/quiche/target/release" - -- job: - name: curl-cmake-ngtcp2 - parent: curl-base - vars: - curl_apt_packages: - - clang-9 - - libpsl-dev - - libbrotli-dev - - libzstd-dev - - libnss3-dev - curl_env: - NGTCP2: "yes" - CC: clang-9 - CXX: clang++-9 - T: cmake - C: >- - -GNinja - -DUSE_NGTCP2=ON - -DCURL_BROTLI=1 - -DCURL_ZSTD=1 - PKG_CONFIG_PATH: "{{ ansible_user_dir }}/ngbuild/lib/pkgconfig" - -- job: - name: curl-debug-clang-with-openssl-dl-ubsan - parent: curl-base - vars: - curl_apt_packages: - - clang-9 - - libpsl-dev - - libbrotli-dev - - libzstd-dev - curl_env: - CC: clang-9 - CXX: clang++-9 - T: debug - CFLAGS: >- - -fsanitize=address,undefined,signed-integer-overflow - -fno-sanitize-recover=undefined,integer - -Wformat - -Werror=format-security - -Werror=array-bounds - -g - LDFLAGS: >- - -fsanitize=address,undefined - -fno-sanitize-recover=undefined,integer - LIBS: -ldl -lubsan - TFLAGS: -n - C: --with-openssl - -- project: - check: - jobs: - - curl-normal-with-openssl-gssapi-libssh2-checksrc - - curl-novalgrind-boringssl-with-openssl - - curl-novalgrind-ngtcp2-with-openssl - - curl-debug-clang-disable-alt-svc-with-openssl - - curl-debug-clang-with-gnutls - - curl-cmake-boringssl-quiche - - curl-cmake-ngtcp2 - - curl-debug-clang-with-openssl-dl-ubsan -... diff --git a/zuul.d/playbooks/.zuul.ignore b/zuul.d/playbooks/.zuul.ignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/zuul.d/playbooks/post.yaml b/zuul.d/playbooks/post.yaml deleted file mode 100644 index 84da9eb787..0000000000 --- a/zuul.d/playbooks/post.yaml +++ /dev/null @@ -1,35 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### ---- -- hosts: all - tasks: - - name: Pull down logs to executor - ignore_errors: True - synchronize: - src: "{{ zuul.project.src_dir }}/config.log" - dest: "{{ zuul.executor.log_root }}/config.log" - mode: pull - owner: false - group: false -... diff --git a/zuul.d/playbooks/pre.yaml b/zuul.d/playbooks/pre.yaml deleted file mode 100644 index 102957b4fc..0000000000 --- a/zuul.d/playbooks/pre.yaml +++ /dev/null @@ -1,93 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### ---- -- hosts: all - tasks: - - - name: Install latest stable release of go - when: gimme_stable|default(false) - block: - - name: Find latest stable version - register: go_stable - uri: - url: https://golang.org/VERSION?m=text - return_content: true - - name: Install Go - include_role: - name: ensure-go - vars: - go_version: "{{ go_stable.content | regex_replace('^go', '') }}" - - - name: Symlink /usr/local/go/bin/go to /usr/bin/go - become: true - file: - src: /usr/local/go/bin/go - dest: /usr/bin/go - state: link - - - name: Install common dependencies - become: true - apt: - update_cache: true - pkg: - - autoconf - - automake - - cmake - - valgrind - - libev-dev - - libc-ares-dev - - libssl-dev - - libtool - - g++ - - g++-8 - - stunnel4 - - libidn2-dev - - gnutls-bin - - python-impacket - - ninja-build - - libgsasl7-dev - - libnghttp2-dev - - - name: Install job-specific packages - when: curl_apt_packages is defined - become: true - apt: - pkg: "{{ curl_apt_packages }}" - - - name: Symlink /usr/bin/scan-build-10 to /usr/bin/scan-build - when: - - curl_apt_packages is defined - - '"clang-tools-10" in curl_apt_packages' - become: true - file: - src: /usr/bin/scan-build-10 - dest: /usr/bin/scan-build - state: link - - - name: Run before script - shell: "./scripts/zuul/before_script.sh" - args: - chdir: "{{ zuul.project.src_dir }}" - environment: "{{ curl_env }}" -... diff --git a/zuul.d/playbooks/run.yaml b/zuul.d/playbooks/run.yaml deleted file mode 100644 index d4949bff3c..0000000000 --- a/zuul.d/playbooks/run.yaml +++ /dev/null @@ -1,35 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# SPDX-License-Identifier: curl -# -########################################################################### ---- -- hosts: all - tasks: - - name: Print environment variables - debug: - var: curl_env - - - name: Run tests - environment: "{{ curl_env }}" - shell: "./scripts/zuul/script.sh" - args: - chdir: "{{ zuul.project.src_dir }}"