Skip to content

GHA/non-native: improve, migrate x86_64 FreeBSD with tests from Cirrus CI#14244

Closed
vszakats wants to merge 22 commits intocurl:masterfrom
vszakats:ghann-freebsd-more
Closed

GHA/non-native: improve, migrate x86_64 FreeBSD with tests from Cirrus CI#14244
vszakats wants to merge 22 commits intocurl:masterfrom
vszakats:ghann-freebsd-more

Conversation

@vszakats
Copy link
Member

@vszakats vszakats commented Jul 20, 2024

  • run tests via make test-ci instead of make check with autotools.
  • add x86_64 job for FreeBSD, with tests.
    It matches the existing Cirrus CI job, with these differences:
    • finishes 3x faster (thanks to parallel tests enabled).
    • librtmp is not enabled because it's slated for removal by FreeBSD.
      (already past the removal deadline, thought the package still
      installs.)
    • DICT and TELNET servers fail to start. Couldn't figure out why.
      It means skipping test 1450 and 1452.
    • it runs more tests, e.g. websockets and ip6-localhost.
    • no pkg update -f.
    • it misses the CRYPTOGRAPHY_DONT_BUILD_RUST=1, pkg delete curl,
      chmod 777, sudo -u nobody and sysctl net.inet.tcp.blackhole
      tricks. The latter is the default in these runners, the others did
      not affect results.
  • set -j0 for tests in the NetBSD job. Flaky otherwise.

Closes #14244

@vszakats vszakats added tests CI Continuous Integration RTMP labels Jul 20, 2024
@vszakats
Copy link
Member Author

Message from librtmp-2.4.20190330_1:
--
===>   NOTICE:
This port is deprecated; you may wish to reconsider installing it:
Depends on legacy functionality of OpenSSL and superseded by multimedia/ffmpeg.
It is scheduled to be removed on or after 2024-04-30.

@vszakats vszakats changed the title GHA/FreeBSD: enable rtmp and x86_64 with tests GHA/FreeBSD: enable x86_64 with tests Jul 20, 2024
@vszakats
Copy link
Member Author

vszakats commented Jul 20, 2024

The only two problems seen compared to Cirrus were these two:

TESTINFO: "failed starting neg TELNET server" 1 time (1452)
TESTINFO: "failed starting DICT server" 1 time (1450)

https://github.com/curl/curl/actions/runs/10020191246/job/27697561609#step:3:10382

These fail in Cirrus, but not in GHA:

TESTINFO: "Resolving IPv6 'ip6-localhost' didn't work" 2 times (241, 1083)

@vszakats vszakats changed the title GHA/FreeBSD: enable x86_64 with tests GHA/non-native: improve, enable x86_64 FreeBSD with tests Jul 21, 2024
@vszakats vszakats removed the RTMP label Jul 21, 2024
@vszakats vszakats force-pushed the ghann-freebsd-more branch from 988ffe3 to a602d1d Compare July 27, 2024 17:34
@vszakats vszakats changed the title GHA/non-native: improve, enable x86_64 FreeBSD with tests GHA/non-native: improve, migrate x86_64 FreeBSD with tests from Cirrus CI Jul 27, 2024
@vszakats
Copy link
Member Author

Is there any objection to migrate our FreeBSD Intel CI job from Cirrus CI to GHA?

@vszakats vszakats closed this in efce544 Jul 29, 2024
@vszakats vszakats deleted the ghann-freebsd-more branch July 29, 2024 18:47
vszakats pushed a commit that referenced this pull request Aug 3, 2024
The test-ci target now uses 2 processes by default, but the amount of
parallelism is tuned for each CI service and build environment based on
results of a number of test runs.  Some CI services use super-
oversubscribed build machines that can barely run the curl tests
already with no parallelism without frequently failing with
timing-induced failures. These continue to be run without parallelism.
Other services provide two fast, unloaded cores and these run with 14
processes, which is a good default for this kind of environment.

Here's a summary of the number of test processes by CI service:

  Appveyor - 2 (Windows MSVC), 1 (others)
  Azure - 2
  Circle CI - 14
  Cirrus - 28 (macOS), 14 (Linux), 7 (FreeBSD), 5 (macOS torture), 2 (Windows)
  GitHub Actions - 3 (macOS), 2 (Linux)

Some of these are a bit conservative to keep timing-induced flakiness down.

The net result is that the first test results should arrive only
3 minutes after a commit submission.

Already merged via separate commits:
- 2a7c8b2 #14171
- 7234106
- efce544 #14244
- c6cf411

Ref: #10818
Closes #11510
vszakats pushed a commit that referenced this pull request Aug 3, 2024
The test-ci target now uses 2 processes by default, but the amount of
parallelism is tuned for each CI service and build environment based on
results of a number of test runs.  Some CI services use super-
oversubscribed build machines that can barely run the curl tests
already with no parallelism without frequently failing with
timing-induced failures. These continue to be run without parallelism.
Other services provide two fast, unloaded cores and these run with 14
processes, which is a good default for this kind of environment.

Here's a summary of the number of test processes by CI service:

  Appveyor - 2 (Windows MSVC), 1 (others)
  Azure - 2
  Circle CI - 14
  Cirrus - 28 (macOS), 14 (Linux), 7 (FreeBSD), 5 (macOS torture), 2 (Windows)
  GitHub Actions - 3 (macOS), 2 (Linux)

Some of these are a bit conservative to keep timing-induced flakiness down.

The net result is that the first test results should arrive only
3 minutes after a commit submission.

Changes merged via separate commits:
- 2a7c8b2 #14171
- 7234106
- efce544 #14244
- c6cf411

Ref: #10818
Closes #11510
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration tests

Development

Successfully merging this pull request may close these issues.

1 participant