--- 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 <