mirror of
https://github.com/curl/curl.git
synced 2025-04-18 16:30:45 +08:00
GHA/non-native: improve, migrate x86_64 FreeBSD with tests from Cirrus CI
- 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
This commit is contained in:
parent
669ce42275
commit
efce544418
@ -34,7 +34,6 @@ trigger:
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.*'
|
||||
@ -48,7 +47,6 @@ pr:
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.*'
|
||||
|
87
.cirrus.yml
87
.cirrus.yml
@ -1,87 +0,0 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# https://cirrus-ci.com/github/curl/curl
|
||||
#
|
||||
# Cirrus CI configuration:
|
||||
# https://cirrus-ci.org/guide/writing-tasks/
|
||||
# Used/remaining credits (must be logged in):
|
||||
# https://cirrus-ci.com/settings/github/curl
|
||||
|
||||
freebsd_task:
|
||||
skip: "changesIncludeOnly(
|
||||
'**/CMakeLists.txt',
|
||||
'.azure-pipelines.yml',
|
||||
'.circleci/**',
|
||||
'.github/**',
|
||||
'appveyor.*',
|
||||
'CMake/**',
|
||||
'packages/**',
|
||||
'plan9/**',
|
||||
'projects/**',
|
||||
'winbuild/**'
|
||||
)"
|
||||
|
||||
name: FreeBSD
|
||||
|
||||
matrix:
|
||||
- name: FreeBSD 14.0
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-0
|
||||
memory: 1600M
|
||||
|
||||
env:
|
||||
CIRRUS_CLONE_DEPTH: 10
|
||||
CRYPTOGRAPHY_DONT_BUILD_RUST: 1
|
||||
MAKEFLAGS: -j 3
|
||||
|
||||
pkginstall_script:
|
||||
- pkg update -f
|
||||
- pkg install -y autoconf automake libtool pkgconf brotli openldap26-client heimdal libpsl libssh2 libidn2 librtmp libnghttp2 nghttp2 stunnel py311-openssl py311-impacket py311-cryptography libpsl
|
||||
- pkg delete -y curl
|
||||
configure_script:
|
||||
- autoreconf -fi
|
||||
# Building with the address sanitizer is causing unexplainable test issues due to timeouts
|
||||
# - case `uname -r` in
|
||||
# 12.2*)
|
||||
# export CC=clang;
|
||||
# export CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export CXXFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" ;;
|
||||
# esac
|
||||
- ./configure --prefix="${HOME}"/install --disable-dependency-tracking --enable-debug --with-openssl --with-libssh2 --with-brotli --with-gssapi --with-libidn2 --enable-manual --enable-ldap --enable-ldaps --with-librtmp --with-libpsl --with-nghttp2 || { tail -300 config.log; false; }
|
||||
compile_script:
|
||||
- make V=1 && make V=1 examples && cd tests && make V=1
|
||||
test_script:
|
||||
# blackhole?
|
||||
- sysctl net.inet.tcp.blackhole
|
||||
# make sure we don't run blackhole != 0
|
||||
- sudo sysctl net.inet.tcp.blackhole=0
|
||||
# Some tests won't run if run as root so run them as another user.
|
||||
# Make directories world writable so the test step can write wherever it needs.
|
||||
- find . -type d -exec chmod 777 {} \;
|
||||
# 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.
|
||||
- sudo -u nobody make V=1 TFLAGS="-n !SFTP !SCP" test-ci
|
||||
install_script:
|
||||
- make V=1 install
|
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@ -44,7 +44,6 @@ CI:
|
||||
- any-glob-to-any-file:
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- '.github/**'
|
||||
- 'appveyor.*'
|
||||
- 'scripts/ci*'
|
||||
|
2
.github/workflows/awslc.yml
vendored
2
.github/workflows/awslc.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
@ -28,7 +27,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
|
2
.github/workflows/curl-for-win.yml
vendored
2
.github/workflows/curl-for-win.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
2
.github/workflows/fuzz.yml
vendored
2
.github/workflows/fuzz.yml
vendored
@ -14,7 +14,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -30,7 +29,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
2
.github/workflows/http3-linux.yml
vendored
2
.github/workflows/http3-linux.yml
vendored
@ -14,7 +14,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -29,7 +28,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
2
.github/workflows/linux-old.yml
vendored
2
.github/workflows/linux-old.yml
vendored
@ -27,7 +27,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -40,7 +39,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
2
.github/workflows/linux.yml
vendored
2
.github/workflows/linux.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
2
.github/workflows/linux32.yml
vendored
2
.github/workflows/linux32.yml
vendored
@ -14,7 +14,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -29,7 +28,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
2
.github/workflows/macos.yml
vendored
2
.github/workflows/macos.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
35
.github/workflows/non-native.yml
vendored
35
.github/workflows/non-native.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -71,6 +69,7 @@ jobs:
|
||||
bld/src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
cmake --build bld --config Debug --parallel 3 --target testdeps
|
||||
export TFLAGS='-j0' # flakies: ~389 ~392 ~TFTP and more
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
|
||||
@ -116,6 +115,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { build: 'autotools', arch: 'x86_64', compiler: 'clang' }
|
||||
- { build: 'autotools', arch: 'arm64', compiler: 'clang' }
|
||||
- { build: 'cmake' , arch: 'arm64', compiler: 'clang' }
|
||||
fail-fast: false
|
||||
@ -130,7 +130,13 @@ jobs:
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://ports.freebsd.org/
|
||||
sudo pkg install -y autoconf automake libtool pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py39-openssl py39-impacket py39-cryptography
|
||||
pkgs='autoconf automake libtool pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel'
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then
|
||||
pkgs="${pkgs} py311-openssl py311-impacket py311-cryptography"
|
||||
else
|
||||
pkgs="${pkgs} py39-openssl py39-impacket py39-cryptography"
|
||||
fi
|
||||
sudo pkg install -y ${pkgs}
|
||||
autoreconf -fi
|
||||
export CC='${{ matrix.compiler }}'
|
||||
mkdir bld && cd bld && ../configure --enable-debug --enable-warnings --enable-werror \
|
||||
@ -143,8 +149,10 @@ jobs:
|
||||
src/curl --disable --version
|
||||
make -j3 examples
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
export TFLAGS='-j12'
|
||||
make check V=1
|
||||
make -j3 -C 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.
|
||||
make test-ci V=1 TFLAGS='-j12 !SFTP !SCP'
|
||||
fi
|
||||
|
||||
- name: 'cmake'
|
||||
@ -156,7 +164,13 @@ jobs:
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://ports.freebsd.org/
|
||||
sudo pkg install -y cmake pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py39-openssl py39-impacket py39-cryptography
|
||||
pkgs='cmake pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel'
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then
|
||||
pkgs="${pkgs} py311-openssl py311-impacket py311-cryptography"
|
||||
else
|
||||
pkgs="${pkgs} py39-openssl py39-impacket py39-cryptography"
|
||||
fi
|
||||
sudo pkg install -y ${pkgs}
|
||||
cmake -B bld \
|
||||
'-DCMAKE_C_COMPILER=${{ matrix.compiler }}' \
|
||||
-DCMAKE_UNITY_BUILD=ON \
|
||||
@ -171,8 +185,9 @@ jobs:
|
||||
bld/src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
cmake --build bld --config Debug --parallel 3 --target testdeps
|
||||
export TFLAGS='-j12'
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
# 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.
|
||||
make test-ci V=1 TFLAGS='-j12 !SFTP !SCP'
|
||||
fi
|
||||
|
||||
omnios:
|
||||
@ -198,5 +213,5 @@ jobs:
|
||||
gmake -j3 install
|
||||
src/curl --disable --version
|
||||
gmake -j3 examples
|
||||
export TFLAGS='-j12 ~MQTT ~FTP'
|
||||
gmake check V=1
|
||||
gmake -j3 -C tests
|
||||
gmake test-ci V=1 TFLAGS='-j12 ~MQTT ~FTP'
|
||||
|
2
.github/workflows/torture.yml
vendored
2
.github/workflows/torture.yml
vendored
@ -14,7 +14,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -29,7 +28,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
2
.github/workflows/windows.yml
vendored
2
.github/workflows/windows.yml
vendored
@ -13,7 +13,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -26,7 +25,6 @@ on:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
|
2
.github/workflows/wolfssl.yml
vendored
2
.github/workflows/wolfssl.yml
vendored
@ -14,7 +14,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -29,7 +28,6 @@ on:
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
@ -207,7 +207,6 @@ skip_commits:
|
||||
files:
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/**/*'
|
||||
- 'packages/**/*'
|
||||
- 'plan9/**/*'
|
||||
|
@ -107,11 +107,4 @@ admins/group members can be added on request.
|
||||
|
||||
### Cirrus CI
|
||||
|
||||
Cirrus CI runs a basic test suite on FreeBSD and Windows. This is configured in
|
||||
`.cirrus.yml`.
|
||||
|
||||
You can [view the full list of CI jobs on Cirrus CI's
|
||||
website](https://cirrus-ci.com/github/curl/curl).
|
||||
|
||||
`@bagder` has access to edit the "Project Settings" on that page. Additional
|
||||
admins/group members can be added on request.
|
||||
Not used anymore.
|
||||
|
Loading…
x
Reference in New Issue
Block a user