Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] First steps to rebalance CI jobs with focus on macOS - squash me! #5124

Closed
wants to merge 14 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 0 additions & 82 deletions .azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,88 +151,6 @@ stages:
env:
TFLAGS: "-n -t --shallow=40 !FTP"

##########################################
### macOS jobs below
##########################################

- stage: macos
dependsOn: []
jobs:
- job: macos_vanilla
displayName: macos default
timeoutInMinutes: 30
pool:
vmImage: 'macOS-latest'
steps:
- script: brew update && brew install libtool autoconf automake nghttp2 pkg-config
displayName: 'brew install'

- script: ./buildconf && ./configure --enable-debug --enable-werror --without-brotli
displayName: 'configure debug without brotli'

- script: make
displayName: 'make'

- script: make test-nonflaky
displayName: 'test'
env:
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"

- job: macos_libssh2
displayName: macos libssh2
timeoutInMinutes: 30
pool:
vmImage: 'macOS-latest'
steps:
- script: brew update && brew install libtool autoconf automake nghttp2 pkg-config libssh2
displayName: 'brew install'

- script: ./buildconf && ./configure --enable-debug --with-libssh2
displayName: 'configure debug with libssh2'

- script: make
displayName: 'make'

- script: make test-nonflaky
displayName: 'test'
env:
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"

- job: macos_cmake
displayName: macos cmake openssl
timeoutInMinutes: 20
pool:
vmImage: 'macOS-latest'
steps:
- script: brew update && brew install libtool autoconf automake nghttp2 pkg-config openssl
displayName: 'brew install'

- script: cmake -H. -Bbuild -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON && cmake --build build
displayName: 'cmake build'

- stage: macos_torture
dependsOn: macos
jobs:
- job: macos_torture
displayName: macos torture
timeoutInMinutes: 60
pool:
vmImage: 'macOS-latest'
steps:
- script: brew update && brew install libtool autoconf automake nghttp2 pkg-config
displayName: 'brew install'

- script: ./buildconf && ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-alt-svc
displayName: 'configure torture'

- script: make
displayName: 'make'

- script: make test-nonflaky
displayName: 'torture test'
env:
TFLAGS: "-n -t --shallow=25 !FTP"

##########################################
### Windows jobs below
##########################################
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
name: CIFuzz
on: [pull_request]
name: CI

on: [push, pull_request]

jobs:
Fuzzing:
fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'curl'
dry-run: false

- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'curl'
fuzz-seconds: 600
dry-run: false

- name: Upload Crash
uses: actions/upload-artifact@v1
if: failure()
Expand Down
88 changes: 88 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: CI

on: [push, pull_request]

jobs:
autotools:
name: macos ${{ matrix.build.name }}
runs-on: 'macos-latest'
strategy:
fail-fast: false
matrix:
build:
- name: normal
install: nghttp2
- name: debug
install: nghttp2
configure: --enable-debug --enable-werror --without-brotli
- name: libssh2
install: nghttp2 libssh2
configure: --enable-debug --with-libssh2
- name: c-ares
install: nghttp2
configure: --enable-debug --enable-ares
- name: HTTP only
install: nghttp2
configure: --enable-debug --enable-werror --enable-maintainer-mode --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets --disable-shared --without-brotli --without-gssapi --without-libidn2 --without-libmetalink --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib
- name: SecureTransport metalink
install: nghttp2 openssl libmetalink
configure: --enable-debug --without-ssl --with-darwinssl --with-libmetalink
- name: OpenSSL metalink
install: nghttp2 openssl libmetalink
configure: --enable-debug --with-ssl=/usr/local/opt/openssl --with-libmetalink
- name: LibreSSL metalink
install: nghttp2 libressl libmetalink
configure: --enable-debug --with-ssl=/usr/local/opt/libressl --with-libmetalink
- name: torture
install: nghttp2 openssl
configure: --enable-debug --disable-shared --disable-threaded-resolver --enable-alt-svc
tflags: -n -t --shallow=25 !FTP
steps:
- uses: actions/checkout@v2

- run: brew update && brew install libtool autoconf automake pkg-config ${{ matrix.build.install }}
name: 'brew install'

- run: ./buildconf && ./configure ${{ matrix.build.configure }}
name: 'configure'

- run: make
name: 'make'

- run: make test-nonflaky
name: 'test'
env:
TFLAGS: "${{ matrix.build.tflags }} ~1452"

cmake:
name: macos cmake ${{ matrix.compiler.CC }} ${{ matrix.build.name }}
runs-on: 'macos-latest'
env: ${{ matrix.compiler }}
strategy:
fail-fast: false
matrix:
compiler:
- CC: clang
CXX: clang++
- CC: gcc-8
CXX: g++-8
- CC: gcc-9
CXX: g++-9
build:
- name: OpenSSL
install: nghttp2 openssl
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON
- name: LibreSSL
install: nghttp2 libressl
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/libressl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON
steps:
- uses: actions/checkout@v2

- run: brew update && brew install libtool autoconf automake pkg-config ${{ matrix.build.install }}
name: 'brew install'

- run: cmake -H. -Bbuild ${{ matrix.build.generate }}
name: 'cmake generate'

- run: cmake --build build
name: 'cmake build'
25 changes: 0 additions & 25 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,28 +246,6 @@ matrix:
env:
- T=iconv
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
- os: osx
compiler: gcc
env: T=debug C="--disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets --disable-shared --enable-debug --enable-maintainer-mode --without-brotli --without-gssapi --without-libidn2 --without-libmetalink --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib"
- os: osx
compiler: gcc
env: T=debug C=--enable-ares
- os: osx
compiler: gcc
env: T=debug C="--with-ssl=/usr/local/opt/openssl --with-libmetalink"
- os: osx
compiler: gcc
env: T=debug C="--with-ssl=/usr/local/opt/libressl --with-libmetalink"
- os: osx
compiler: clang
osx_image: xcode10
env: T=debug C="--without-ssl --with-darwinssl --with-libmetalink"
- os: osx
compiler: clang
env: T=normal
- os: osx
compiler: clang
env: T=cmake
- os: linux
compiler: gcc
dist: bionic
Expand Down Expand Up @@ -420,9 +398,6 @@ before_install:

install:
- if [ "$T" = "coverage" ]; then pip2 install --user cpp-coveralls; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update > /dev/null; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew reinstall libtool > /dev/null; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install rtmpdump libssh2 c-ares libmetalink libressl nghttp2 libmetalink; fi

# before_script and script:
# Travis isn't reliable catching errors in inline script commands (#3730).
Expand Down