ci - curl · continuous integration for curl test and verify as much as possible already in...

7
CI CI

Upload: others

Post on 14-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

CICI

Page 2: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

Merge only the good stuff

Page 3: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

Continuous Integration for curlTest and verify as much as possible already in pull-requests

Reduce follow-up fxes, keep master functional for development

Check code-style as well, to minimize “nagging” done by humans

curl is very portable and runs many confgurations, devs build/tests only a small portion individually

Page 4: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

HistoryNov 2000: frst test suite

May 2001: test format makeover

… volunteer distributed testing post-merge

Oct 2013: basic travis-ci use, linux-only

Aug 2015: macOS travis runs

Sep 2015: AppVeyor-CI – Windows builds

Jun 2017: test coverage on travis

Page 5: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

Tested for every PR and push todayLinux, macOS, Windows and Solaris builds, including examples

Run tests on both builds on Linux, macOS and Solaris

Using clang and gcc

Debug-enabled (includes ‘make checksrc’), non debug-enabled, HTTP disabled, with libssh, with brotli, with boringssl, with libressl, with c-ares, with libpsl, with CURL_DOES_CONVERSIONS, with cmake and confgure

Test coverage

distcheck – verifes release tarball (in and out of tree, confgure and cmake)

Fuzzer (separate from OSS-fuzz)

lgtm.com static analyzer

Page 6: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

More CI?More platforms (buildbot integrations)

More TLS libraries

More (widely used) build options

Running tests on windows

Increase test coverage

Convert auto-tests to CI builds?

Page 7: CI - cURL · Continuous Integration for curl Test and verify as much as possible already in pull-requests Reduce follow-up fxes, keep master functional for development Check code-style

False sense of security?The tests don’t test everything

We don’t build and run on nearly all platforms our users use

We don’t build with all possible third party dependencies