Commit Graph

68 Commits

Author SHA1 Message Date
Dan Fandrich
fb802b521a CI: enable parallel make in more builds
Most CI services provide at least two cores, so enable parallel make
jobs to take advantage of that for builds. Some dependencies aren't safe
to build in parallel so leave those as-is.  Also, rename a few
workflows to eliminate duplicate names and provide a better idea what
they're about.
2023-06-24 14:40:39 -07:00
Dan Fandrich
33849e4322 CI: add an Alpine build with MUSL
MUSL is another libc implementation which has its own unique issues
worth testing.

Ref: #11140
Closes #11178
2023-05-22 16:00:08 -07:00
Dan Fandrich
43e71fe0fc CI: skip some more builds when possible
When a commit only contains tests, documentation, or cmake files, skip
those builds that aren't affected by those.

The file filters available on the CI services don't seem to allow
skipping individual jobs, only the entire workflow, so we can't get any
more fine-grained than this.
2023-03-24 19:59:50 -07:00
Dan Fandrich
395b9175b7 CI: don't run CI jobs if only another CI was changed
Also skip builds on non-Windows platforms when only Windows build files
have changed.

This should reduce the number of useless builds and the associated
waiting time and chance of spurious failures, freeing resources for
new PRs.

Closes #10742
2023-03-11 18:59:45 -08:00
Dan Fandrich
c2b7249db2 CI: fix retrying on brew failures
The previous attempt didn't consider that the shell would exit
immediately after the false statement in the retry case.

Follow-up to dc141a37
2023-03-10 16:41:25 -08:00
Dan Fandrich
dc141a37d3 CI: retry a failed brew update too, not just brew install
Also, make sure an eventual failure ends up returning a failure code so
the job stops.
2023-03-10 09:55:11 -08:00
Philip H
682854c790
.cirrus.yml: Bump to FreeBSD 13.2
Closes #10270
2023-02-25 00:15:57 +01:00
Daniel Stenberg
2bc1d775f5
copyright: update all copyright lines and remove year ranges
- they are mostly pointless in all major jurisdictions
- many big corporations and projects already don't use them
- saves us from pointless churn
- git keeps history for us
- the year range is kept in COPYING

checksrc is updated to allow non-year using copyright statements

Closes #10205
2023-01-03 09:19:21 +01:00
Philip H
66fabeea2a CI: Change FreeBSD image from 12.3 to 12.4
Ref: https://www.phoronix.com/news/FreeBSD-12.4-Released

Closes https://github.com/curl/curl/pull/10051
2022-12-07 15:46:31 -05:00
Marc Hoersken
65bdd6baec
CI/cirrus: remove superfluous double-quotes and sudo
Follow up to #9565 and #9677
Closes #9738
2022-10-30 22:52:07 +01:00
Philip H
1de60b18de
cirrus-ci: add more macOS builds with m1 based on x86_64 builds
Also refactor macOS builds to use task matrix.

Assisted-by: Marc Hörsken
Closes #9565
2022-10-15 21:40:19 +02:00
Marc Hoersken
d905de2769
CI/cirrus: merge existing macOS jobs into a job matrix
Ref: #9627
Reviewed-by: Philip H.

Closes #9672
2022-10-08 23:49:55 +02:00
Jay Satiro
258ee7372f cirrus: use make LDFLAGS=-all-static instead of curl_LDFLAGS
- Correct the use of -all-static for static Windows CI builds.

curl_LDFLAGS was removed from the makefile when metalink support was
removed. LDFLAGS=-all-static is passed to make only, because it is not a
valid option for configure compilation tests.

Closes https://github.com/curl/curl/pull/9633
2022-10-05 03:45:40 -04:00
Philip H
55becae8f5
cirrus-ci: add macOS build with m1
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>

Closes #9565
2022-09-29 10:56:14 +02:00
Daniel Stenberg
136b07d73f
cirrus: enable websockets in the windows builds 2022-09-09 15:11:14 +02:00
Philip H
3879d812ad
cirrus/freebsd-ci: bootstrap the pip installer
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>

Closes #9213
2022-08-08 23:25:56 +02:00
Philip H
bff6277679
cirrus.yml: replace py38-pip with py39-pip
Reported-by: Jay Satiro
Fixes #9201
Closes #9202
2022-07-26 00:02:40 +02:00
Philip H
06fc958305
CI: bump FreeBSD 13.0 to 13.1
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Closes #8815
2022-06-18 12:47:17 +02:00
Marc Hoersken
0263c828a5
CI/cirrus: align Windows timeout with Azure CI at 120 minutes
Closes #9009
2022-06-16 20:33:43 +02:00
max.mehl
ad9bc5976d
copyright: make repository REUSE compliant
Add licensing and copyright information for all files in this repository. This
either happens in the file itself as a comment header or in the file
`.reuse/dep5`.

This commit also adds a Github workflow to check pull requests and adapts
copyright.pl to the changes.

Closes #8869
2022-06-13 09:13:00 +02:00
Daniel Stenberg
07a400c8e0
CI: remove configure --enable-headers-api flags 2022-05-30 14:13:48 +02:00
Philip H
9ea16971fd cirrus: Use pip for Python packages on FreeBSD
Using pip instead of easy_install is more in line with how other
CI images are being maintained.

Closes: #8783
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
2022-05-02 14:39:33 +02:00
Philip H
6df9d9b46c cirrus: Update to FreeBSD 12.3
Closes: #8783
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
2022-05-02 14:38:45 +02:00
Daniel Stenberg
d79b1ead74
cirrus: add --enable-headers-api for some windows builds 2022-03-22 08:24:26 +01:00
Philip H
22d33956ec
CI: Do not use buildconf. Instead, just use: autoreconf -fi
Closes #8596
2022-03-15 14:15:35 +01:00
Marc Hoersken
f9b212cc84
CI: install Python package impacket to run SMB test 1451
Install Python package impacket in relevant CI workflows.

Follow up to #7935
Supersedes #7940
Closes #8544
2022-03-06 21:22:58 +01:00
Marc Hoersken
f03cc1b7a6
CI: build examples for additional code verification
Some CIs already build them, let's do it on more of them.

Reviewed-by: Daniel Stenberg

Follow up to #7690 and 77311f420a
Replaces #7591
Closes #7922
2021-12-14 07:53:39 +01:00
Marc Hoersken
b3e1ed3160
tests: add Schannel-specific tests and disable unsupported ones
Adds Schannel variants of SSLpinning tests that include the option
--ssl-revoke-best-effort to ignore certificate revocation check
failures which is required due to our custom test CA certificate.

Disable the original variants if the Schannel backend is enabled.

Also skip all IDN tests which are broken while using an msys shell.

This is a step to simplify test exclusions for Windows and MinGW.

Reviewed-by: Jay Satiro
Reviewed-by: Marcel Raad
Reviewed-by: Daniel Stenberg
Closes #7968
2021-11-09 06:34:33 +01:00
Marc Hoersken
74d46aee28
CI: more use of test-ci make target and verbose output
Replace test-nonflaky with test-ci and enable verbose output
in all remaining CIs except Zuul which is customized a lot.

Reviewed-by: Daniel Stenberg
Reviewed-by: Jay Satiro

Follow up to #7785
Closes #7832
2021-10-27 12:33:18 +02:00
Daniel Stenberg
a265ce4371
cirrus: remove FreeBSD 11.4 from the matrix
It has reached End-Of-Life and causes some LDAP CI issues.

Closes #7869
2021-10-18 10:41:24 +02:00
Daniel Stenberg
fc746cd340
cirrus: switch to openldap24-client
... as it seems openldap-client doesn't exist anymore.

Reported-by: Jay Satiro
Fixes #7868
Closes #7869
2021-10-18 10:41:15 +02:00
Marc Hoersken
ab1671cafe
CI/makefiles: introduce dedicated test target
Make it easy to use the same set of test flags
throughout all current and future CI builds.

Reviewed-by: Jay Satiro

Follow up to #7690
Closes #7785
2021-10-08 20:16:15 +02:00
Marc Hoersken
02c9802fd1
CI: align make and test flags in various config files
1. Use Makefile target to run tests in autotools builds on AppVeyor.
2. Disable testing of SCP protocol on native Windows environments.
3. Remove redundant parameters -a -p from target test-nonflaky.
4. Don't use -vc parameter which is reserved for debugging.

Replaces #7591
Closes #7690
2021-09-27 20:59:29 +02:00
Marc Hoersken
60efeb1e0d
runtests: add option -u to error on server unexpectedly alive
Let's try to actually handle the server unexpectedly alive
case by first making them visible on CI builds as failures.

This is needed to detect issues with killing of the test
servers completely including nested process chains with
multiple PIDs per test server (including bash and perl).

On Windows/cygwin platforms this is especially helpful with
debugging PID mixups due to cygwin using its own PID space.

Reviewed-by: Daniel Stenberg
Closes #7180
2021-09-09 21:28:26 +02:00
Daniel Gustafsson
71f9a8fa6f cirrus: Add FreeBSD 13.0 job and disable sanitizer build
As alluded to the in the now removed comment, a 13.0 image became
available and is now ready to be used.

The sanitizer builds were running on the 12.1 image which since has
been removed from the config, leaving the builds not running at all.
When enabled it turns out that they don't actually work due to very
long timeouts in executing the tests, so keep the disabled for now
but a bit more controlled.

Closes #7592
2021-09-08 10:14:45 +02:00
Marc Hoersken
ebefa3b9f0
CI: use GitHub Container Registry instead of Docker Hub
Avoid limits on Docker Hub and improve image pull/download speed.

Closes #7587
2021-08-18 20:57:03 +02:00
Marc Hoersken
1390fc0977
CI/cirrus: reduce compile time with increased parallism
Cirrus CI VMs have 2 CPUs, let's use them also for Windows builds.

Reviewed-by: Daniel Stenberg
Closes #7505
2021-07-31 12:20:33 +02:00
Marc Hoersken
2c2b26145f
CI/cirrus: install impacket from PyPI instead of FreeBSD packages
Availability of impacket as FreeBSD package is too flaky.

Stick to legacy version of cryptography which still
supports OpenSSL version 1.0.2 due to FreeBSD 11.

Reviewed-by: Daniel Stenberg

Closes #7418
2021-07-18 19:42:47 +02:00
Daniel Stenberg
265b14d6b3
metalink: remove
Warning: this will make existing curl command lines that use metalink to
stop working.

Reasons for removal:

1. We've found several security problems and issues involving the
   metalink support in curl. The issues are not detailed here. When
   working on those, it become apparent to the team that several of the
   problems are due to the system design, metalink library API and what
   the metalink RFC says. They are very hard to fix on the curl side
   only.

2. The metalink usage with curl was only very briefly documented and was
   not following the "normal" curl usage pattern in several ways, making
   it surprising and non-intuitive which could lead to further security
   issues.

3. The metalink library was last updated 6 years ago and wasn't so
   active the years before that either. An unmaintained library means
   there's a security problem waiting to happen. This is probably reason
   enough.

4. Metalink requires an XML parsing library, which is complex code (even
   the smaller alternatives) and to this day often gets security
   updates.

5. Metalink is not a widely used curl feature. In the 2020 curl user
   survey, only 1.4% of the responders said that they'd are using it. In
   2021 that number was 1.2%. Searching the web also show very few
   traces of it being used, even with other tools.

6. The torrent format and associated technology clearly won for
   downloading large files from multiple sources in parallel.

Cloes #7176
2021-06-07 08:14:25 +02:00
Marc Hoersken
af97a8f232 CI/cirrus: add shared and static Windows release builds
Azure Pipelines is currently being used for debug builds,
let's also run some non-debug (release) Windows builds and
make use of previously underutilized Cirrus CI for that.

Reviewed-by: Marcel Raad

Closes #6991
2021-05-16 11:23:47 +02:00
Daniel Stenberg
e052bbcd57
ci: adapt to configure requiring an explicit TLS choice 2021-04-22 23:19:47 +02:00
Daniel Stenberg
85e6975643
copyright: update copyright year ranges to 2021
Reviewed-by: Emil Engler
Closes #6802
2021-03-27 23:00:14 +01:00
Viktor Szakats
7db6bc5eca
ci: stop building on freebsd-12-1
An updated freebsd-12-2 image was added a few months ago, and this
older one is consistently failing to go past `pkginstall`:
```
Newer FreeBSD version for package py37-mlt:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1202000
- running kernel: 1201000
Ignore the mismatch and continue? [Y/n]: pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64
```

FreeBSD thread suggests that 12.1 is EOL, and best to avoid.

Ref: https://forums.freebsd.org/threads/78856/

Reviewed-by: Daniel Stenberg
Closes #6622
2021-02-18 11:21:04 +00:00
Marc Hoersken
d18e9c580f
CI/cirrus: simplify logic for disabled tests
The OpenSSH server instance for the testsuite cannot
be started on FreeBSD, therefore the SFTP and SCP
tests are disabled right away from the beginning.

The previous OS version specific logic for SKIP_TESTS
is no longer needed/used and can therefore be removed.

Reviewed-by: Daniel Stenberg

Follow up to #6211
Closes #6229
2020-11-20 12:45:11 +01:00
Emil Engler
4e65f69b0d
cirrus: build with FreeBSD 12.2 in CirrusCI
Closes #6211
2020-11-17 12:18:45 +01:00
Daniel Stenberg
4d2f800677
curl.se: new home
Closes #6172
2020-11-04 23:59:47 +01:00
Carlo Marcelo Arenas Belón
7670e9ef71 cirrus-ci: upgrade 11-STABLE to 11.4
Meant to be the last of the 11 series and so make sure that all
other references reflect all 11 versions so they can be retired
together later.

Closes https://github.com/curl/curl/pull/5668
2020-07-11 02:42:54 -04:00
Daniel Stenberg
c585bad8e2
cirrus-ci: disable FreeBSD 13 (again)
It has been failing for a good while again. This time we better leave it
disabled until we have more reason to believe it behaves.

Closes #5628
2020-06-29 17:46:48 +02:00
Marc Hoersken
cffbcc3110
test1238: avoid tftpd being busy for tests shortly following
The tftpd server may still be busy if the total timeout of
25 seconds has not been reached or no sread error was received
during or after the execution of the timeout test 1238.

Once the next TFTP test comes around (eg. 1242 or 1243),
those will fail because the tftpd server is still waiting
on data from curl due to the UDP protocol being stateless
and having no connection close. On Linux this error may not
happen, because ICMP errors generated due to a swrite error
can also be returned async on the next sread call instead.

Therefore we will now just kill the tftpd server after test
1238 to make sure that the following tests are not affected.

This enables us to no longer ignore tests 1242, 1243, 2002
and 2003 on the CI platforms CirrusCI and AppVeyor.

Assisted-by: Peter Wu
Closes #5364
2020-05-11 19:59:19 +02:00
Daniel Stenberg
dce30e2e07
cirrus: disable SFTP and SCP tests
... as we can't seem to start the sshd server on it. Those problems
existed before d1239b50be (running the SSH server on a random port),
but they're more noticable now since there are more failed attempts in
the logs.

Closes #5315
2020-04-30 23:54:44 +02:00