mirror of
https://github.com/libevent/libevent.git
synced 2025-01-31 09:12:55 +08:00
Public CI workers has pretty high load, and sometimes you need to test only specific workflow, i.e. windows. So let's add ability to limit which workflow should be run.
183 lines
5.7 KiB
YAML
183 lines
5.7 KiB
YAML
---
|
|
name: macos
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '.mailmap'
|
|
- 'ChangeLog*'
|
|
- 'whatsnew*'
|
|
- 'LICENSE'
|
|
push:
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '.mailmap'
|
|
- 'ChangeLog*'
|
|
- 'whatsnew*'
|
|
- 'LICENSE'
|
|
|
|
jobs:
|
|
cmake:
|
|
runs-on: ${{ matrix.os }}
|
|
if: "!contains(github.event.head_commit.message, 'ci skip') && !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@v2.0.0
|
|
|
|
- name: Cache Build
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: build
|
|
key: macos-10.15-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
|
|
shell: bash
|
|
run: |
|
|
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
|
|
|
|
autotools:
|
|
runs-on: ${{ matrix.os }}
|
|
if: "!contains(github.event.head_commit.message, 'ci skip') && !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]
|
|
EVENT_MATRIX:
|
|
- NONE
|
|
- NO_SSL
|
|
- DISABLE_OPENSSL
|
|
- DISABLE_THREAD_SUPPORT
|
|
- DISABLE_DEBUG_MODE
|
|
- DISABLE_MM_REPLACEMENT
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2.0.0
|
|
|
|
- name: Cache Build
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: build
|
|
key: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-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"
|
|
|
|
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
|
|
EVENT_CONFIGURE_OPTIONS="--disable-openssl"
|
|
|
|
elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
|
|
EVENT_CONFIGURE_OPTIONS="--disable-openssl --disable-mbedtls"
|
|
|
|
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
|
|
EVENT_CONFIGURE_OPTIONS="--disable-thread-support"
|
|
|
|
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
|
|
EVENT_CONFIGURE_OPTIONS="--disable-debug-mode"
|
|
|
|
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
|
|
EVENT_CONFIGURE_OPTIONS="--disable-malloc-replacement"
|
|
|
|
else
|
|
EVENT_CONFIGURE_OPTIONS=""
|
|
fi
|
|
|
|
./autogen.sh
|
|
mkdir -p build
|
|
cd build
|
|
echo [configure]: ../configure $EVENT_CONFIGURE_OPTIONS
|
|
../configure $EVENT_CONFIGURE_OPTIONS
|
|
make
|
|
|
|
- name: Test
|
|
shell: bash
|
|
run: |
|
|
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
|