#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 2021 - 2022, 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-boringssl-with-openssl-quiche
    parent: curl-base
    vars:
      curl_apt_packages:
        - libpsl-dev
        - libbrotli-dev
        - libzstd-dev
      curl_env:
        CC: gcc-8
        CXX: g++-8
        T: novalgrind
        QUICHE: "yes"
        C: >-
          --with-openssl={{ ansible_user_dir }}/quiche/quiche/deps/boringssl/src
          --with-quiche={{ ansible_user_dir }}/quiche/target/release
        LD_LIBRARY_PATH: "{{ ansible_user_dir }}/quiche/target/release:/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-fuzzer
    parent: curl-base
    vars:
      curl_apt_packages:
        - clang
        - clang-9
        - libpsl-dev
        - libbrotli-dev
        - libzstd-dev
      curl_env:
        CC: clang-9
        CXX: clang++-9
        T: fuzzer

- 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-boringssl-with-openssl-quiche
      - 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-fuzzer
      - curl-debug-clang-with-openssl-dl-ubsan
...
