Commit Graph

79 Commits

Author SHA1 Message Date
Viktor Szakats
2d4d0c1fd3
appveyor: replace PowerShell with bash + parallel autotools
PowerShell works (after a steep development curve), but one property of
it stuck and kept causing unresolvable usability issues: With
`$ErrorActionPreference=Stop`, it does abort on failures, but shows only
the first line of the error message. In `Continue` mode, it shows the
full error message, but doesn't stop on all errors. Another issue is
PowerShell considering any stderr output as if the command failed (this
has been improved in 7.2 (2021-Nov), but fixed versions aren't running
in CI and will not be for a long time in all test images.)

Thus, we're going with bash.

Also:
- use `-j2` with autotools tests, making them finish 5-15 minutes per
  job faster.
- omit `POSIX_PATH_PREFIX`.
- use `WINDIR`.
- prefer forward slashes.

Follow-up to: 75078a415d #11999
Ref: #12444

Fixes #12560
Closes #12572
2023-12-21 22:54:07 +00:00
Viktor Szakats
bda2129114
tidy-up: fix yamllint whitespace issues
Closes #12466
2023-12-06 17:25:59 +00:00
Philip H
50bf253357
.cirrus.yml: freebsd 14
ensure curl works on latest freebsd version

Closes #12053
2023-11-14 08:19:02 +01:00
Dan Fandrich
dff6b78fe7 CI: bump OpenLDAP package version on FreeBSD
The old one is no longer available.
2023-10-07 12:52:07 -07:00
Dan Fandrich
63f23fafc9 CI: remove Windows builds from Cirrus, without replacement
If we don't do this, all coverage on Cirrus will cease in a few days. By
removing the Windows builds, the FreeBSD one should still continue
as before. The Windows builds will need be moved to another service to
maintain test coverage.

Closes #11771
2023-08-31 15:18:28 -07:00
Dan Fandrich
3262ce6f28 CI: switch macOS ARM build from Cirrus to Circle CI
Cirrus is drastically reducing their free tier on Sept. 1, so they will
no longer perform all these builds for us. All but one build has been
moved, with the LibreSSL one being dropped because of linking problems
on Circle.

One important note about this change is that Circle CI is currently
directing all these builds to x86_64 hardware, despite them requesting
ARM. This is because ARM nodes are scheduled to be available on the
free tier only in December. This reduces our architectural diversity
until then but it should automatically come back once those machines are
enabled.
2023-08-31 15:18:28 -07:00
Dan Fandrich
a7f4e90ce7 CI: use the right variable for BSD make
BSD uses MAKEFLAGS instead of MAKE_FLAGS so it wasn't doing parallel
builds before.
2023-08-31 15:18:21 -07:00
Dan Fandrich
756de05d89 CI: drop the FreeBSD 12.X build
Cirrus' new free tier won't let us have many builds, so drop the
nonessential ones. The FreeBSD 13.X build will still give us the most
relevant FreeBSD coverage.
2023-08-30 23:50:18 -07:00
Dan Fandrich
cc746076e0 CI: move the Alpine build from Cirrus to GHA
Cirrus is reducing their free tier to next to nothing, so we must move
builds elsewhere.
2023-08-30 23:50:16 -07:00
Daniel Stenberg
a2caea87bc
cirrus: install everthing with pkg, avoid pip
Assisted-by: Sevan Janiyan

Closes #11711
2023-08-22 23:06:20 +02:00
Stefan Eissing
527a17dc21
CI/cirrus: disable python install on FreeBSD
- python cryptography package does not build build FreeBSD
- install just mentions "error"
- this gets the build and the main test suite going again

Closes #11705
2023-08-21 19:46:00 +02:00
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