xref: /aosp_15_r20/external/curl/tests/CI.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker<!--
2*6236dae4SAndroid Build Coastguard WorkerCopyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard Worker
4*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
5*6236dae4SAndroid Build Coastguard Worker-->
6*6236dae4SAndroid Build Coastguard Worker
7*6236dae4SAndroid Build Coastguard Worker# Continuous Integration for curl
8*6236dae4SAndroid Build Coastguard Worker
9*6236dae4SAndroid Build Coastguard WorkerCurl runs in many different environments, so every change is run against a
10*6236dae4SAndroid Build Coastguard Workerlarge number of test suites.
11*6236dae4SAndroid Build Coastguard Worker
12*6236dae4SAndroid Build Coastguard WorkerEvery pull request is verified for each of the following:
13*6236dae4SAndroid Build Coastguard Worker
14*6236dae4SAndroid Build Coastguard Worker - ... it still builds, warning-free, on Linux and macOS, with both
15*6236dae4SAndroid Build Coastguard Worker   clang and gcc
16*6236dae4SAndroid Build Coastguard Worker - ... it still builds fine on Windows with several MSVC versions
17*6236dae4SAndroid Build Coastguard Worker - ... it still builds with cmake on Linux, with gcc and clang
18*6236dae4SAndroid Build Coastguard Worker - ... it follows rudimentary code style rules
19*6236dae4SAndroid Build Coastguard Worker - ... the test suite still runs 100% fine
20*6236dae4SAndroid Build Coastguard Worker - ... the release tarball (the "dist") still works
21*6236dae4SAndroid Build Coastguard Worker - ... it builds fine in-tree as well as out-of-tree
22*6236dae4SAndroid Build Coastguard Worker - ... code coverage does not shrink drastically
23*6236dae4SAndroid Build Coastguard Worker - ... different TLS backends still compile and pass tests
24*6236dae4SAndroid Build Coastguard Worker
25*6236dae4SAndroid Build Coastguard WorkerIf the pull-request fails one of these tests, it shows up as a red X and you
26*6236dae4SAndroid Build Coastguard Workerare expected to fix the problem. If you do not understand when the issue is or
27*6236dae4SAndroid Build Coastguard Workerhave other problems to fix the complaint, just ask and other project members
28*6236dae4SAndroid Build Coastguard Workercan likely help out.
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard WorkerConsider the following table while looking at pull request failures:
31*6236dae4SAndroid Build Coastguard Worker
32*6236dae4SAndroid Build Coastguard Worker | CI platform as shown in PR          | State  | What to look at next       |
33*6236dae4SAndroid Build Coastguard Worker | ----------------------------------- | ------ | -------------------------- |
34*6236dae4SAndroid Build Coastguard Worker | CI / codeql                         | stable | quality check results      |
35*6236dae4SAndroid Build Coastguard Worker | CI / fuzzing                        | stable | fuzzing results            |
36*6236dae4SAndroid Build Coastguard Worker | CI / macos ...                      | stable | all errors and failures    |
37*6236dae4SAndroid Build Coastguard Worker | Code scanning results / CodeQL      | stable | quality check results      |
38*6236dae4SAndroid Build Coastguard Worker | FreeBSD FreeBSD: ...                | stable | all errors and failures    |
39*6236dae4SAndroid Build Coastguard Worker | LGTM analysis: Python               | stable | new findings               |
40*6236dae4SAndroid Build Coastguard Worker | LGTM analysis:  C/C++               | stable | new findings               |
41*6236dae4SAndroid Build Coastguard Worker | buildbot/curl_winssl_ ...           | stable | all errors and failures    |
42*6236dae4SAndroid Build Coastguard Worker | AppVeyor                            | flaky  | all errors and failures    |
43*6236dae4SAndroid Build Coastguard Worker | curl.curl (linux ...)               | stable | all errors and failures    |
44*6236dae4SAndroid Build Coastguard Worker | curl.curl (windows ...)             | flaky  | repetitive errors/failures |
45*6236dae4SAndroid Build Coastguard Worker | CodeQL                              | stable | new findings               |
46*6236dae4SAndroid Build Coastguard Worker
47*6236dae4SAndroid Build Coastguard WorkerSometimes the tests fail due to a dependency service temporarily being offline
48*6236dae4SAndroid Build Coastguard Workeror otherwise unavailable, for example package downloads. In this case you can
49*6236dae4SAndroid Build Coastguard Workerjust try to update your pull requests to rerun the tests later as described
50*6236dae4SAndroid Build Coastguard Workerbelow.
51*6236dae4SAndroid Build Coastguard Worker
52*6236dae4SAndroid Build Coastguard Worker## CI servers
53*6236dae4SAndroid Build Coastguard Worker
54*6236dae4SAndroid Build Coastguard WorkerHere are the different CI environments that are currently in use, and how they
55*6236dae4SAndroid Build Coastguard Workerare configured:
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard Worker### GitHub Actions
58*6236dae4SAndroid Build Coastguard Worker
59*6236dae4SAndroid Build Coastguard WorkerGitHub Actions runs the following tests:
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard Worker- macOS tests with a variety of different compilation options
62*6236dae4SAndroid Build Coastguard Worker- Fuzz tests ([see the curl-fuzzer repo for more
63*6236dae4SAndroid Build Coastguard Worker  info](https://github.com/curl/curl-fuzzer)).
64*6236dae4SAndroid Build Coastguard Worker- Curl compiled using the Rust TLS backend with Hyper
65*6236dae4SAndroid Build Coastguard Worker- CodeQL static analysis
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard WorkerThese are each configured in different files in `.github/workflows`.
68*6236dae4SAndroid Build Coastguard Worker
69*6236dae4SAndroid Build Coastguard Worker### Azure
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard WorkerNot used anymore.
72*6236dae4SAndroid Build Coastguard Worker
73*6236dae4SAndroid Build Coastguard Worker### AppVeyor
74*6236dae4SAndroid Build Coastguard Worker
75*6236dae4SAndroid Build Coastguard WorkerAppVeyor runs a variety of different Windows builds, with different compilation
76*6236dae4SAndroid Build Coastguard Workeroptions.
77*6236dae4SAndroid Build Coastguard Worker
78*6236dae4SAndroid Build Coastguard WorkerAs of November 2021 `@bagder`, `@mback2k`, `@jay`, `@vszakats`, `@dfandrich`
79*6236dae4SAndroid Build Coastguard Workerand `@danielgustafsson` have administrator access to the AppVeyor CI
80*6236dae4SAndroid Build Coastguard Workerenvironment.  Additional admins/group members can be added on request.
81*6236dae4SAndroid Build Coastguard Worker
82*6236dae4SAndroid Build Coastguard WorkerThe tests are configured in `appveyor.yml`.
83*6236dae4SAndroid Build Coastguard Worker
84*6236dae4SAndroid Build Coastguard Worker### Zuul
85*6236dae4SAndroid Build Coastguard Worker
86*6236dae4SAndroid Build Coastguard WorkerNot used anymore.
87*6236dae4SAndroid Build Coastguard Worker
88*6236dae4SAndroid Build Coastguard Worker### Circle CI
89*6236dae4SAndroid Build Coastguard Worker
90*6236dae4SAndroid Build Coastguard WorkerCircle CI runs a basic Linux test suite on Ubuntu for both x86 and ARM
91*6236dae4SAndroid Build Coastguard Workerprocessors. This is configured in `.circleci/config.yml`.
92*6236dae4SAndroid Build Coastguard Worker
93*6236dae4SAndroid Build Coastguard WorkerYou can [view the full list of CI jobs on Circle CI's
94*6236dae4SAndroid Build Coastguard Workerwebsite](https://app.circleci.com/pipelines/github/curl/curl).
95*6236dae4SAndroid Build Coastguard Worker
96*6236dae4SAndroid Build Coastguard Worker`@bagder` has access to edit the "Project Settings" on that page. Additional
97*6236dae4SAndroid Build Coastguard Workeradmins/group members can be added on request.
98*6236dae4SAndroid Build Coastguard Worker
99*6236dae4SAndroid Build Coastguard Worker### Cirrus CI
100*6236dae4SAndroid Build Coastguard Worker
101*6236dae4SAndroid Build Coastguard WorkerNot used anymore.
102