Skip to content

Update build instructions #1499

Update build instructions

Update build instructions #1499

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: log4cxx-ubuntu
on: [push, pull_request]
jobs:
job:
name: ${{ matrix.os }}-${{ matrix.cxx }}-build-and-test
runs-on: ${{ matrix.os }}
timeout-minutes: 38
strategy:
fail-fast: false
matrix:
name: [ubuntu20-gcc, ubuntu20-clang, ubuntu22-gcc, ubuntu22-clang]
include:
- name: ubuntu20-gcc
os: ubuntu-20.04
cxx: g++
fmt: OFF
qt: ON
odbc: OFF
multithread: OFF
exitevents: OFF
fuzzers: OFF
- name: ubuntu20-clang
os: ubuntu-20.04
cxx: clang++
fmt: ON
qt: OFF
odbc: ON
multithread: OFF
exitevents: OFF
fuzzers: ON
- name: ubuntu22-gcc
os: ubuntu-22.04
cxx: g++
fmt: OFF
qt: OFF
odbc: OFF
multithread: ON
exitevents: ON
fuzzers: OFF
- name: ubuntu22-clang
os: ubuntu-22.04
cxx: clang++
fmt: ON
qt: OFF
odbc: OFF
multithread: ON
exitevents: OFF
fuzzers: ON
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false # do not persist auth token in the local git config
path: main
- name: 'Configure Dependencies'
run: |
sudo apt-get update
sudo apt-get install -y libapr1-dev libaprutil1-dev
if [ ${{ matrix.fmt }} == ON ]; then sudo apt-get install -y libfmt-dev; fi
if [ ${{ matrix.odbc }} == ON ]; then sudo apt-get install -y unixodbc-dev; fi
if [ ${{ matrix.qt }} == ON ]; then sudo apt-get install -y qtbase5-dev; fi
- name: WORKAROUND FOR https://github.com/actions/runner-images/issues/8659
if: |
matrix.name=='ubuntu22-clang'
run: |
echo -e "TEMPORARY WORKAROUND FOR GITHUB RUNNER BUG #8659\n\nRemoving GCC 13 as it breaks Clang14"
sudo rm -f /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-jammy.list
sudo apt-get update
sudo apt-get install -y --allow-downgrades libc6=2.35-* libc6-dev=2.35-* libstdc++6=12.3.0-* libgcc-s1=12.3.0-*
- name: 'run cmake - posix'
run: |
cd main
mkdir build
cd build
cmake \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DLOG4CXX_ENABLE_ODBC=${{ matrix.odbc }} \
-DLOG4CXX_QT_SUPPORT=${{ matrix.qt }} \
-DENABLE_MULTITHREAD_TEST=${{ matrix.multithread }} \
-DLOG4CXX_EVENTS_AT_EXIT=${{ matrix.exitevents }} \
-DBUILD_FUZZERS=${{ matrix.fuzzers }} \
..
cmake --build .
- name: run unit tests
shell: pwsh
run: |
cd main
cd build
ctest -C Debug --output-on-failure