zuul: stop using this CI service

The important jobs have already transitioned. The remaining ones we can
skip for now.

Closes #10368
This commit is contained in:
Daniel Stenberg 2023-01-30 11:38:50 +01:00
parent e62ebe3aa8
commit be5f6c3124
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
10 changed files with 1 additions and 596 deletions

1
.github/labeler.yml vendored
View File

@ -46,7 +46,6 @@ CI:
- all: ['.cirrus.yml']
- all: ['.github/**']
- all: ['appveyor.yml']
- all: ['zuul.d/**']
cmake:
- all: ['**/CMakeLists.txt']

View File

@ -43,8 +43,6 @@ my %skiplist = (
"LICENSES/curl.txt" => "<built-in>",
"COPYING" => "<built-in>",
# an empty control file
"zuul.d/playbooks/.zuul.ignore" => "<built-in>",
);
sub scanfile {

View File

@ -1,111 +0,0 @@
#!/bin/bash
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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

View File

@ -1,93 +0,0 @@
#!/bin/bash
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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

View File

@ -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

View File

@ -1,209 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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
...

View File

@ -1,35 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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
...

View File

@ -1,93 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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 }}"
...

View File

@ -1,35 +0,0 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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 }}"