Add github action file to build automatically
diff --git a/.github/workflows/log4cxx.yml b/.github/workflows/log4cxx.yml
new file mode 100644
index 0000000..ef0dd8e
--- /dev/null
+++ b/.github/workflows/log4cxx.yml
@@ -0,0 +1,91 @@
+# 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
+
+on: push
+
+jobs:
+ job:
+ name: ${{ matrix.os }}-${{ matrix.cxx }}-build-and-test
+ runs-on: ${{ matrix.os }}
+ timeout-minutes: 38
+ strategy:
+ fail-fast: false
+ matrix:
+ name: [ubuntu18-gcc, ubuntu18-clang, osx, windows-2019]
+ include:
+ - name: windows-2019
+ os: windows-2019
+ cxx: cl.exe
+ cc: cl.exe
+ - name: ubuntu18-gcc
+ os: ubuntu-18.04
+ cxx: g++
+ cc: gcc
+ - name: ubuntu18-clang
+ os: ubuntu-18.04
+ cxx: clang++
+ cc: clang
+ - name: osx
+ os: macos-latest
+ cxx: clang++
+ cc: clang
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: lukka/set-shell-env@v1
+ with:
+ CXX: ${{ matrix.cxx }}
+ CC: ${{ matrix.cc }}
+
+ - name: 'Configure Dependencies - Ubuntu'
+ if: matrix.name == 'ubuntu18-gcc' || matrix.name == 'ubuntu18-clang'
+ run: |
+ sudo apt-get install -y libapr1-dev libaprutil1-dev
+ # note: sqlext.h exists on github VM, purge for now as we don't link correctly...
+ sudo apt-get purge unixodbc-dev
+
+ - name: 'Restore Prebuilt Dependencies - Windows'
+ id: restore-vcpkg-cache
+ if: matrix.name == 'windows-2019' || matrix.name == 'windows-2016'
+ uses: actions/cache@v2
+ with:
+ path: ${{ runner.workspace }}/vcpkg
+ key: ${{ runner.os }}-${{ matrix.name }}-cache
+
+ - name: 'Configure Dependencies - Windows'
+ if: matrix.name == 'windows-2019' || matrix.name == 'windows-2016'
+ uses: lukka/run-vcpkg@v2
+ id: runvcpkg
+ with:
+ vcpkgArguments: apr apr-util
+ vcpkgDirectory: ${{ runner.workspace }}/vcpkg/
+ vcpkgGitCommitId: ffa7fd27cfa29f206d1fd2ccfc722cad4aaeef3d
+ vcpkgTriplet: x64-windows
+
+ - name: 'run cmake'
+ uses: lukka/run-cmake@v2
+ with:
+ cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
+ buildDirectory: ${{ runner.workspace }}/build
+ useVcpkgToolchainFile: true
+ cmakeAppendedArgs: '-DLOG4CXX_TEST_PROGRAM_PATH=C:\msys64\usr\bin'
+
+ - name: run unit tests
+ shell: pwsh
+ run: |
+ cd ${{ runner.workspace }}/build
+ ctest -C Debug --output-on-failure -V