mirror of
https://github.com/libevent/libevent.git
synced 2025-01-09 00:56:20 +08:00
211736697b
In the most recent CI run, all the OpenBSD CI jobs failed, i.e https://github.com/libevent/libevent/actions/runs/4876367885/jobs/8699759831, this seems to be due to the fact that packages for 7.1 have been removed from https://cdn.openbsd.org/pub/OpenBSD/ (only has 7.2 & 7.3): ```bash Config file: openbsd-7.1.conf https://cdn.openbsd.org/pub/OpenBSD/7.1/packages/amd64/: no such dir Can't find rsync-3.2.3p0 Couldn't install rsync-3.2.3p0 exec shell: bash run.sh showDebugInfo ``` Switch to using 7.2, which is available, so that the CI will run.
974 lines
32 KiB
YAML
974 lines
32 KiB
YAML
---
|
||
name: build
|
||
|
||
on:
|
||
pull_request:
|
||
types:
|
||
- synchronize
|
||
- reopened
|
||
- opened
|
||
branches:
|
||
- master
|
||
paths-ignore:
|
||
- '**.md'
|
||
- '.mailmap'
|
||
- 'ChangeLog*'
|
||
- 'whatsnew*'
|
||
- 'LICENSE'
|
||
push:
|
||
branches:
|
||
- master
|
||
paths-ignore:
|
||
- '**.md'
|
||
- '.mailmap'
|
||
- 'ChangeLog*'
|
||
- 'whatsnew*'
|
||
- 'LICENSE'
|
||
|
||
permissions: read-all
|
||
|
||
jobs:
|
||
linux-cmake-job:
|
||
runs-on: ${{ matrix.os }}
|
||
if: "!contains(github.event.head_commit.message, 'ci/linux skip') && !contains(github.event.head_commit.message, 'ci/linux/cmake skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [ubuntu-20.04]
|
||
EVENT_MATRIX:
|
||
- DIST
|
||
- NONE
|
||
- NO_SSL
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
- COMPILER_CLANG
|
||
- TEST_EXPORT_STATIC
|
||
- TEST_EXPORT_SHARED
|
||
include:
|
||
- os: ubuntu-22.04
|
||
EVENT_MATRIX: OPENSSL_3
|
||
# use recent ubuntu with recent clang for recent sanitizers
|
||
- os: ubuntu-22.04
|
||
EVENT_MATRIX: TSAN
|
||
- os: ubuntu-22.04
|
||
EVENT_MATRIX: ASAN
|
||
- os: ubuntu-22.04
|
||
EVENT_MATRIX: UBSAN
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v3
|
||
- name: Cache Dist Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: dist
|
||
key: ${{ matrix.os }}-cmake-dist-${{ matrix.EVENT_MATRIX }}-v3
|
||
|
||
- name: Install Depends
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y libmbedtls-dev
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: |
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then
|
||
./autogen.sh
|
||
mkdir -p dist
|
||
cd dist
|
||
../configure
|
||
rm -fr *.tar.gz
|
||
make dist
|
||
archive=$(echo *.tar.gz)
|
||
tar -vxf $archive
|
||
cd $(basename $archive .tar.gz)
|
||
fi
|
||
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "COMPILER_CLANG" ]; then
|
||
EVENT_CMAKE_OPTIONS=""
|
||
export CC=clang
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=SHARED -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "ASAN" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TSAN" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=thread -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "UBSAN" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=undefined -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
|
||
else
|
||
EVENT_CMAKE_OPTIONS=""
|
||
fi
|
||
|
||
mkdir -p build
|
||
cd build
|
||
echo [cmake]: cmake .. -DEVENT__ENABLE_GCC_WARNINGS=ON $EVENT_CMAKE_OPTIONS
|
||
cmake .. -DEVENT__ENABLE_GCC_WARNINGS=ON $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS)
|
||
cmake --build .
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
JOBS=20
|
||
export CTEST_PARALLEL_LEVEL=$JOBS
|
||
export CTEST_OUTPUT_ON_FAILURE=1
|
||
|
||
# Enable allocator_may_return_null for test_event_calloc_enomem
|
||
export TSAN_OPTIONS=suppressions=$PWD/extra/tsan.supp:allocator_may_return_null=1
|
||
export LSAN_OPTIONS=suppressions=$PWD/extra/lsan.supp
|
||
export ASAN_OPTIONS=allocator_may_return_null=1
|
||
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then
|
||
cd dist
|
||
archive=$(echo *.tar.gz)
|
||
cd $(basename $archive .tar.gz)
|
||
fi
|
||
cd build
|
||
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
sudo python3 ../test-export/test-export.py static
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
sudo python3 ../test-export/test-export.py shared
|
||
else
|
||
cmake --build . --target verify
|
||
fi
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure() && matrix.EVENT_MATRIX != 'DIST'
|
||
with:
|
||
name: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure() && matrix.EVENT_MATRIX == 'DIST'
|
||
with:
|
||
name: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-dist
|
||
path: dist
|
||
|
||
linux-autotools-job:
|
||
runs-on: ${{ matrix.os }}
|
||
if: "!contains(github.event.head_commit.message, 'ci/linux skip') && !contains(github.event.head_commit.message, 'ci/linux/autotools skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [ubuntu-20.04]
|
||
include:
|
||
# openssl 3.0
|
||
- os: ubuntu-22.04
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: dist
|
||
key: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-v3
|
||
|
||
- name: Install Depends
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y libmbedtls-dev
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: |
|
||
./autogen.sh
|
||
|
||
# dist archive
|
||
mkdir -p dist
|
||
cd dist
|
||
rm -fr *.tar.gz
|
||
../configure
|
||
make dist
|
||
archive=$(echo *.tar.gz)
|
||
tar -vxf $archive
|
||
cd $(basename $archive .tar.gz)
|
||
# \dist archive
|
||
|
||
mkdir -p build
|
||
cd build
|
||
echo [configure]: ../configure --enable-gcc-warnings
|
||
../configure --enable-gcc-warnings
|
||
make
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
JOBS=20
|
||
|
||
cd dist
|
||
archive=$(echo *.tar.gz)
|
||
cd $(basename $archive .tar.gz)
|
||
|
||
cd build
|
||
make -j $JOBS verify
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-dist
|
||
path: dist
|
||
|
||
windows-vs2019-job:
|
||
runs-on: ${{ matrix.os }}
|
||
if: "!contains(github.event.head_commit.message, 'ci/windows skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [windows-2019]
|
||
EVENT_MATRIX:
|
||
- NONE
|
||
- NO_SSL
|
||
- LIBRARY_TYPE_STATIC
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
- DUNICODE
|
||
- UNOCODE_TEMPORARY_DIRECTORY
|
||
- TEST_EXPORT_SHARED
|
||
- TEST_EXPORT_STATIC
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: ${{ matrix.os }}-${{ matrix.EVENT_MATRIX }}-v4
|
||
|
||
- name: Prepare vcpkg
|
||
uses: lukka/run-vcpkg@v7
|
||
id: runvcpkg
|
||
with:
|
||
vcpkgArguments: zlib:x64-windows openssl:x64-windows mbedtls:x64-windows
|
||
vcpkgDirectory: ${{ runner.workspace }}/vcpkg/
|
||
vcpkgTriplet: x64-windows
|
||
vcpkgGitCommitId: af2287382b1991dbdcb7e5112d236f3323b9dd7a
|
||
|
||
- name: Build
|
||
shell: powershell
|
||
run: |
|
||
$EVENT_BUILD_PARALLEL=10
|
||
|
||
if ( "${{ matrix.EVENT_MATRIX }}" -eq "LIBRARY_TYPE_STATIC" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__MSVC_STATIC_RUNTIME=OFF"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "DISABLE_OPENSSL" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "DISABLE_THREAD_SUPPORT" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "DISABLE_DEBUG_MODE" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "DISABLE_MM_REPLACEMENT" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "UNICODE" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS='-DUNICODE -D_UNICODE'"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "UNOCODE_TEMPORARY_DIRECTORY" ) {
|
||
$EVENT_CMAKE_OPTIONS=""
|
||
mkdir "${{ runner.workspace }}\𝑼𝑵𝑰𝑪𝑶𝑫𝑬"
|
||
echo "TMP=${{ runner.workspace }}\𝑼𝑵𝑰𝑪𝑶𝑫𝑬" >> $env:GITHUB_ENV
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_SHARED" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_STATIC" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__MSVC_STATIC_RUNTIME=OFF -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -eq "NO_SSL" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
}
|
||
else {
|
||
$EVENT_CMAKE_OPTIONS=""
|
||
}
|
||
|
||
mkdir build -ea 0
|
||
cd build
|
||
|
||
$CMAKE_CMD="cmake -G 'Visual Studio 16 2019' -A x64 -DCMAKE_TOOLCHAIN_FILE=${{ runner.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake .. $EVENT_CMAKE_OPTIONS"
|
||
function cmake_configure($retry)
|
||
{
|
||
$errcode=0
|
||
try {
|
||
if ($retry -eq 0) {
|
||
echo "[cmake configure retry] $CMAKE_CMD"
|
||
} else {
|
||
echo "[cmake configure] $CMAKE_CMD"
|
||
}
|
||
Invoke-Expression $CMAKE_CMD
|
||
$errcode=$LastExitCode
|
||
}
|
||
catch {
|
||
$errcode=1
|
||
}
|
||
finally {
|
||
if ($errcode -ne 0) {
|
||
if ($retry -eq 0) {
|
||
$host.SetShouldExit($LastExitCode)
|
||
} else {
|
||
echo "Remove all entries in build directory"
|
||
rm -r -fo *
|
||
cmake_configure 0
|
||
}
|
||
}
|
||
}
|
||
}
|
||
cmake_configure 1
|
||
cmake --build . -j $EVENT_BUILD_PARALLEL -- /nologo /verbosity:minimal
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: powershell
|
||
command: |
|
||
$EVENT_TESTS_PARALLEL=1
|
||
|
||
cd build
|
||
|
||
try {
|
||
if ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_STATIC") {
|
||
python ../test-export/test-export.py static
|
||
} elseif ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_SHARED") {
|
||
python ../test-export/test-export.py shared
|
||
} else {
|
||
ctest --output-on-failure -j $EVENT_TESTS_PARALLEL
|
||
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }
|
||
}
|
||
} catch {
|
||
$host.SetShouldExit($LastExitCode)
|
||
}
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: ${{ matrix.os }}-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
mingw-autotools-job:
|
||
runs-on: windows-2019
|
||
if: "!contains(github.event.head_commit.message, 'ci/mingw skip') && !contains(github.event.head_commit.message, 'ci/mingw/autotools skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: mingw-autotools-v5
|
||
- name: Setup MSYS2
|
||
uses: msys2/setup-msys2@v2
|
||
with:
|
||
msystem: MINGW64
|
||
update: true
|
||
install: mingw-w64-x86_64-gcc autoconf automake libtool mingw-w64-x86_64-openssl mingw-w64-x86_64-mbedtls pkg-config
|
||
|
||
- name: Build
|
||
shell: powershell
|
||
run: |
|
||
$env:EVENT_BUILD_PARALLEL=10
|
||
|
||
$script='
|
||
export PATH="/mingw64/bin:/usr/bin:/bin:/usr/local/bin:/opt/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH"
|
||
./autogen.sh 2>&1 3>&1
|
||
[[ $? -ne 0 ]] && exit 1
|
||
mkdir -p build
|
||
cd build
|
||
[[ $? -ne 0 ]] && exit 1
|
||
LDFLAGS="-L/mingw64/lib" CFLAGS="-I/mingw64/include" ../configure 2>&1
|
||
[[ $? -ne 0 ]] && exit 1
|
||
make -j $EVENT_BUILD_PARALLEL 2>&1
|
||
[[ $? -ne 0 ]] && exit 1
|
||
exit 0
|
||
'
|
||
D:\a\_temp\msys64\usr\bin\bash.exe -c $script
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: powershell
|
||
command: |
|
||
$env:EVENT_TESTS_PARALLEL=1
|
||
|
||
$script='
|
||
export PATH="/mingw64/bin:/usr/bin:/bin:/usr/local/bin:/opt/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH"
|
||
cd build
|
||
make verify -j $EVENT_TESTS_PARALLEL 2>&1 '
|
||
D:\a\_temp\msys64\usr\bin\bash.exe -c $script
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: mingw-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
mingw-cmake-job:
|
||
runs-on: windows-2019
|
||
# FIXME: disabled for now, see [1].
|
||
# [1]: https://github.com/libevent/libevent/issues/1207
|
||
if: "false && !contains(github.event.head_commit.message, 'ci/mingw skip') && !contains(github.event.head_commit.message, 'ci/mingw/cmake skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
EVENT_MATRIX:
|
||
- NONE
|
||
- NO_SSL
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: mingw-cmake-${{ matrix.EVENT_MATRIX }}-v4
|
||
|
||
- name: Setup MSYS2
|
||
uses: msys2/setup-msys2@v2
|
||
with:
|
||
msystem: MINGW64
|
||
update: true
|
||
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-openssl mingw-w64-x86_64-mbedtls
|
||
|
||
- name: Build
|
||
shell: powershell
|
||
run: |
|
||
$EVENT_CMAKE_OPTIONS=""
|
||
if ( "${{ matrix.EVENT_MATRIX }}" -ne "NO_SSL" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
}
|
||
elseif ( "${{ matrix.EVENT_MATRIX }}" -ne "NONE" ) {
|
||
$EVENT_CMAKE_OPTIONS="-DEVENT__${{ matrix.EVENT_MATRIX }}=ON"
|
||
}
|
||
$env:PATH="D:\a\_temp\msys64\mingw64\bin;D:\a\_temp\msys64\usr\bin;$env:PATH"
|
||
mkdir build -ea 0
|
||
cd build
|
||
function cmake_configure($retry)
|
||
{
|
||
$errcode=0
|
||
try {
|
||
cmake .. -G "MSYS Makefiles" $EVENT_CMAKE_OPTIONS -DCMAKE_C_FLAGS=-w
|
||
$errcode=$LastExitCode
|
||
}
|
||
catch {
|
||
$errcode=1
|
||
}
|
||
finally {
|
||
if ($errcode -ne 0) {
|
||
if ($retry -eq 0) {
|
||
$host.SetShouldExit($LastExitCode)
|
||
} else {
|
||
echo "Remove all entries in build directory"
|
||
rm -r -fo *
|
||
cmake_configure 0
|
||
}
|
||
}
|
||
}
|
||
}
|
||
cmake_configure 1
|
||
cmake --build .
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: powershell
|
||
command: |
|
||
cd build
|
||
ctest --output-on-failure
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: mingw-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
macos-cmake-job:
|
||
runs-on: ${{ matrix.os }}
|
||
if: "!contains(github.event.head_commit.message, 'ci/macos skip') && !contains(github.event.head_commit.message, 'ci/macos/cmake skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [macos-latest]
|
||
EVENT_MATRIX:
|
||
- NONE
|
||
- NO_SSL
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
- TEST_EXPORT_STATIC
|
||
- TEST_EXPORT_SHARED
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v3
|
||
|
||
- name: Install Depends
|
||
run: brew install mbedtls@2
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: |
|
||
# NOTE: cmake does not support autodetection of OPENSSL_ROOT_DIR via brew
|
||
export OPENSSL_ROOT_DIR=/usr/local/opt/openssl
|
||
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=SHARED -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
else
|
||
EVENT_CMAKE_OPTIONS=""
|
||
fi
|
||
EVENT_CMAKE_OPTIONS="$EVENT_CMAKE_OPTIONS -DMBEDTLS_ROOT_DIR=/usr/local/opt/mbedtls@2"
|
||
|
||
mkdir -p build
|
||
cd build
|
||
echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS
|
||
cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS)
|
||
cmake --build .
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
JOBS=1
|
||
export CTEST_PARALLEL_LEVEL=$JOBS
|
||
export CTEST_OUTPUT_ON_FAILURE=1
|
||
|
||
cd build
|
||
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
sudo python3 ../test-export/test-export.py static
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
sudo python3 ../test-export/test-export.py shared
|
||
else
|
||
cmake --build . --target verify
|
||
fi
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
macos-autotools-job:
|
||
runs-on: ${{ matrix.os }}
|
||
if: "!contains(github.event.head_commit.message, 'ci/macos skip') && !contains(github.event.head_commit.message, 'ci/macos/autotools skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [macos-latest]
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: ${{ matrix.os }}-autotools-v3
|
||
|
||
- name: Install Depends
|
||
run: brew install autoconf automake libtool pkg-config mbedtls@2
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: |
|
||
export CPPFLAGS="-I/usr/local/opt/mbedtls@2/include"
|
||
export LDFLAGS="-L/usr/local/opt/mbedtls@2/lib"
|
||
|
||
./autogen.sh
|
||
mkdir -p build
|
||
cd build
|
||
echo [configure]: ../configure
|
||
../configure
|
||
make
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
JOBS=1
|
||
cd build
|
||
make -j $JOBS verify
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
freebsd-cmake-job:
|
||
runs-on: macos-12
|
||
if: "!contains(github.event.head_commit.message, 'ci/freebsd skip') && !contains(github.event.head_commit.message, 'ci/freebsd/cmake skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
# NOTE: 13.0 has some issues:
|
||
# ld-elf.so.1: /lib/libc.so.7: version FBSD_1.7 required by /usr/local/lib/libpython3.9.so.1.0 not found
|
||
release: ["12.3", "13.1"]
|
||
EVENT_MATRIX:
|
||
- NONE
|
||
- NO_SSL
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
- TEST_EXPORT_STATIC
|
||
- TEST_EXPORT_SHARED
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: freebsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-v1
|
||
|
||
- name: Build
|
||
uses: vmactions/freebsd-vm@v0
|
||
with:
|
||
release: ${{ matrix.release }}
|
||
prepare: |
|
||
pkg install -y mbedtls cmake python3
|
||
usesh: true
|
||
run: |
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=SHARED -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
else
|
||
EVENT_CMAKE_OPTIONS=""
|
||
fi
|
||
EVENT_CMAKE_OPTIONS="$EVENT_CMAKE_OPTIONS -DMBEDTLS_ROOT_DIR=/usr/local/opt/mbedtls@2"
|
||
|
||
mkdir -p build
|
||
cd build
|
||
echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS
|
||
cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS)
|
||
cmake --build .
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
ssh freebsd sh <<EOF
|
||
cd $GITHUB_WORKSPACE
|
||
JOBS=1
|
||
export CTEST_PARALLEL_LEVEL=$JOBS
|
||
export CTEST_OUTPUT_ON_FAILURE=1
|
||
cd build
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
python3 ../test-export/test-export.py static
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
python3 ../test-export/test-export.py shared
|
||
else
|
||
cmake --build . --target verify
|
||
fi
|
||
EOF
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: freebsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
freebsd-autotools-job:
|
||
runs-on: macos-12
|
||
if: "!contains(github.event.head_commit.message, 'ci/freebsd skip') && !contains(github.event.head_commit.message, 'ci/freebsd/autotools skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
release: ["13.1"]
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: freebsd-${{ matrix.release }}-autotools-v1
|
||
|
||
|
||
- name: Build
|
||
uses: vmactions/freebsd-vm@v0
|
||
with:
|
||
release: ${{ matrix.release }}
|
||
prepare: |
|
||
pkg install -y mbedtls python3 autoconf automake libtool pkgconf
|
||
usesh: true
|
||
run: |
|
||
./autogen.sh
|
||
mkdir -p build
|
||
cd build
|
||
echo [configure]: ../configure
|
||
../configure
|
||
make
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
ssh freebsd sh <<EOF
|
||
cd $GITHUB_WORKSPACE
|
||
JOBS=1
|
||
cd build
|
||
make verify
|
||
EOF
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: freebsd-${{ matrix.release }}-autotools-${{ matrix.EVENT_MATRIX }}-build
|
||
path: build
|
||
|
||
openbsd-cmake-job:
|
||
runs-on: macos-12
|
||
if: "!contains(github.event.head_commit.message, 'ci/openbsd skip') && !contains(github.event.head_commit.message, 'ci/openbsd/cmake skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
release: [
|
||
# 6.9 has some issues with autoconf/autotools [1].
|
||
# [1]: https://github.com/libevent/libevent/pull/1326#issuecomment-1229531718
|
||
#"6.9",
|
||
"7.2",
|
||
]
|
||
EVENT_MATRIX:
|
||
- NONE
|
||
- NO_SSL
|
||
- DISABLE_OPENSSL
|
||
- DISABLE_THREAD_SUPPORT
|
||
- DISABLE_DEBUG_MODE
|
||
- DISABLE_MM_REPLACEMENT
|
||
- TEST_EXPORT_STATIC
|
||
# For now this test is disabled due to incorrect library paths [1].
|
||
# [1]: https://github.com/libevent/libevent/pull/1326#issuecomment-1245159690
|
||
#
|
||
# - TEST_EXPORT_SHARED
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: openbsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-v1
|
||
|
||
- name: Build
|
||
uses: vmactions/openbsd-vm@v0
|
||
with:
|
||
release: ${{ matrix.release }}
|
||
prepare: |
|
||
pkg_add mbedtls cmake python3
|
||
usesh: true
|
||
run: |
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=SHARED -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
|
||
|
||
else
|
||
EVENT_CMAKE_OPTIONS=""
|
||
fi
|
||
EVENT_CMAKE_OPTIONS="$EVENT_CMAKE_OPTIONS -DMBEDTLS_ROOT_DIR=/usr/local/opt/mbedtls@2"
|
||
|
||
mkdir -p build
|
||
cd build
|
||
echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS
|
||
cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS)
|
||
cmake --build .
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
ssh openbsd sh <<EOF
|
||
cd $GITHUB_WORKSPACE
|
||
JOBS=1
|
||
export CTEST_PARALLEL_LEVEL=$JOBS
|
||
export CTEST_OUTPUT_ON_FAILURE=1
|
||
cd build
|
||
if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
|
||
python3 ../test-export/test-export.py static
|
||
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
|
||
python3 ../test-export/test-export.py shared
|
||
else
|
||
cmake --build . --target verify
|
||
fi
|
||
EOF
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: openbsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-build
|
||
path: .
|
||
|
||
openbsd-autotools-job:
|
||
runs-on: macos-12
|
||
if: "!contains(github.event.head_commit.message, 'ci/openbsd skip') && !contains(github.event.head_commit.message, 'ci/openbsd/autotools skip')"
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
release: ["7.2"]
|
||
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
|
||
- name: Cache Build
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: build
|
||
key: openbsd-${{ matrix.release }}-autotools-v1
|
||
|
||
|
||
- name: Build
|
||
uses: vmactions/openbsd-vm@v0
|
||
with:
|
||
release: ${{ matrix.release }}
|
||
prepare: |
|
||
pkg_add mbedtls python3 automake-1.16.5 autoconf-2.71 libtool pkgconf
|
||
usesh: true
|
||
run: |
|
||
export AUTOMAKE_VERSION=1.16
|
||
export AUTOCONF_VERSION=2.71
|
||
|
||
./autogen.sh
|
||
mkdir -p build
|
||
cd build
|
||
echo [configure]: ../configure
|
||
../configure
|
||
make V=1
|
||
|
||
- name: Test
|
||
uses: nick-fields/retry@v2
|
||
with:
|
||
max_attempts: 5
|
||
timeout_minutes: 20
|
||
shell: bash
|
||
command: |
|
||
ssh openbsd sh <<EOF
|
||
cd $GITHUB_WORKSPACE
|
||
JOBS=1
|
||
cd build
|
||
make verify
|
||
EOF
|
||
|
||
- uses: actions/upload-artifact@v1
|
||
if: failure()
|
||
with:
|
||
name: openbsd-${{ matrix.release }}-autotools-${{ matrix.EVENT_MATRIX }}-build
|
||
path: .
|