Merge pull request #111 from MrAnno/ci-typo #76
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS | |
on: | |
pull_request: | |
push: | |
schedule: | |
- cron: '00 21 * * *' | |
jobs: | |
general: | |
strategy: | |
matrix: | |
version: [13, 14] | |
build-tool: [autotools, cmake] | |
fail-fast: false | |
runs-on: macOS-${{ matrix.version }} | |
steps: | |
- name: Checkout AxoSyslog source | |
uses: actions/checkout@v4 | |
- name: Set xcode version | |
if: matrix.version == 14 | |
run: | | |
sudo xcode-select -s /Applications/Xcode_15.2.app | |
- name: Unlinking preinstalled Python (workaround) | |
# The python@3 brew package has to be installed and linked system-wide (it's a dependency of glib and syslog-ng) | |
# The macos-13 GitHub runner has Python preinstalled as a pkg, this prevents linking the python@3 | |
# brew package, even when linking is forced. `brew "python@3", link: true, force: true` | |
# also, brew cannot update the links even these cretated by itself for an earlier python version | |
run : | | |
find /usr/local/bin/ -lname "*Python.framework*" -delete | |
- name: Install dependencies | |
run: | | |
brew update --preinstall | |
brew bundle --file=contrib/Brewfile | |
- name: Set ENV variables | |
run: | | |
. .github/workflows/gh-tools.sh | |
HOMEBREW_PREFIX="$(brew --prefix)" | |
PYTHONUSERBASE="${HOME}/python_packages" | |
PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openssl@3/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/net-snmp/lib/pkgconfig:${HOMEBREW_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" | |
CFLAGS="-I${HOMEBREW_PREFIX}/include/" | |
LDFLAGS="-L${HOMEBREW_PREFIX}/lib" | |
THREADS="$(sysctl -n hw.physicalcpu)" | |
CONFIGURE_FLAGS=" | |
--enable-force-gnu99 | |
--prefix=${SYSLOG_NG_INSTALL_DIR} | |
--enable-all-modules | |
--enable-tests | |
--with-ivykis=system | |
--with-python=3 | |
--with-systemd-journal=no | |
--disable-smtp | |
--disable-grpc | |
--disable-java | |
--disable-java-modules | |
--disable-mqtt | |
--disable-pacct | |
" | |
CMAKE_CONFIGURE_FLAGS=" | |
-DCMAKE_BUILD_TYPE=Debug | |
-DSUMMARY_VERBOSE=ON | |
-DBUILD_TESTING=ON | |
-DIVYKIS_SOURCE=system | |
-DPYTHON_VERSION=3 | |
-DENABLE_JOURNALD=OFF | |
-DENABLE_AFSMTP=OFF | |
-DENABLE_GRPC=OFF | |
-DENABLE_JAVA=OFF | |
-DENABLE_JAVA_MODULES=OFF | |
-DENABLE_MQTT=OFF | |
-DENABLE_PACCT=OFF | |
" | |
PATH="${HOMEBREW_PREFIX}/opt/bison/bin:${HOMEBREW_PREFIX}/opt/libnet/bin:${HOMEBREW_PREFIX}/opt/net-snmp/bin:${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:${PYTHONUSERBASE}/bin:${PATH}" | |
gh_export HOMEBREW_PREFIX PYTHONUSERBASE CC CXX PKG_CONFIG_PATH THREADS CONFIGURE_FLAGS CFLAGS LDFLAGS CMAKE_CONFIGURE_FLAGS PATH | |
gh_path "${PATH}" | |
echo "ARCH: " $(arch) | |
echo "xcode:" $(xcode-select -p) | |
env | sort | |
- name: autogen.sh | |
if: matrix.build-tool == 'autotools' | |
run: | | |
./autogen.sh | |
- name: configure | |
if: matrix.build-tool == 'autotools' | |
run: | | |
./configure ${CONFIGURE_FLAGS} | |
- name: cmake configure | |
if: matrix.build-tool == 'cmake' | |
run: | | |
mkdir build | |
# If you know the valid syntax to provide the quoted string for -DCMAKE_C_FLAGS inplace in CMAKE_CONFIGURE_FLAGS above (in Set ENV variables step) instead of this hack, please contribute! | |
# | |
# TODO: -Wall must be replaced here with -Werror but now multiple warnings could occure in several modules that needs to be corrected first | |
# | |
cmake --install-prefix "${HOME}/install/syslog-ng" -B build . -DCMAKE_C_FLAGS="-Wall ${CFLAGS}" ${CMAKE_CONFIGURE_FLAGS} | |
- name: cmake install | |
if: matrix.build-tool == 'cmake' | |
run: | | |
cmake --build ./build -j ${THREADS} --target install | |
- name: cmake check | |
# FIXME: Some of our checks still do not run correctly on silicon yet (and probably never will) | |
if: matrix.build-tool == 'cmake' && matrix.version != 14 | |
run: | | |
cmake --build ./build -j ${THREADS} --target check | |
- name: make | |
if: matrix.build-tool == 'autotools' | |
run: | | |
set -e | |
make --keep-going -j ${THREADS} || \ | |
{ \ | |
S=$?; \ | |
make V=1; \ | |
return $S; \ | |
} | |
- name: make check | |
# FIXME: Some of our checks still do not run correctly on silicon yet (and probably never will) | |
if: matrix.build-tool == 'autotools' && matrix.version != 14 | |
run: | | |
set -e | |
make --keep-going check -j ${THREADS} || \ | |
{ \ | |
S=$?; \ | |
echo "Output of first test invocation:"; \ | |
find . -name test-suite.log | xargs cat; \ | |
make V=1 check; \ | |
echo "Output of second test invocation:"; \ | |
find . -name test-suite.log | xargs cat; \ | |
return $S; \ | |
} |