diff options
author | Ivan Zhakov <ivan@apache.org> | 2023-01-17 18:53:53 +0000 |
---|---|---|
committer | Ivan Zhakov <ivan@apache.org> | 2023-01-17 18:53:53 +0000 |
commit | 10935fd875ac73ebbd2489da8e866b877575f61a (patch) | |
tree | 7c2fa52c3a1fd71d11fb0387b4d4974e623e039a | |
parent | be971dc89c140e13cf030a0e9962a7c6970eabdd (diff) | |
download | apr-10935fd875ac73ebbd2489da8e866b877575f61a.tar.gz |
Merge all GitHub Actions related changes from trunk.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1906746 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | .github/workflows/linux.yml | 59 | ||||
-rw-r--r-- | .github/workflows/macos.yml | 32 | ||||
-rw-r--r-- | .github/workflows/windows.yml | 42 |
3 files changed, 133 insertions, 0 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 000000000..be46a2a74 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,59 @@ +name: Linux + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "trunk" ] + +env: + MARGS: "-j2" + +jobs: + + build: + strategy: + matrix: + include: + - name: Default + - name: Static + config: --enable-static + - name: Maintainer-mode + config: --enable-maintainer-mode + - name: Pool-debug + config: --enable-pool-debug + - name: Pool-debug, maintainer-mode + config: --enable-pool-debug --enable-maintainer-mode + - name: Maintainer-mode, no IPv6 + config: --enable-maintainer-mode --disable-ipv6 + - name: Maintainer-mode, -Werror + notest-cflags: -Werror + config: --enable-maintainer-mode + - name: ASan + # w/o ODBC since DSO unload leaks memory and fails the tests + notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2 + config: --with-odbc=no + - name: ASan, pool-debug + # w/o ODBC since DSO unload leaks memory and fails the tests + notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2 + config: --enable-pool-debug --with-odbc=no + - name: UBsan + notest-cflags: -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer -Werror -O2 + fail-fast: false + + runs-on: ubuntu-latest + env: + NOTEST_CFLAGS: ${{ matrix.notest-cflags }} + name: ${{ matrix.name }} + steps: + - name: Install prerequisites + run: sudo apt-get install libtool libtool-bin + - uses: actions/checkout@v3 + - name: buildconf + run: ./buildconf + - name: configure + run: ./configure ${{ matrix.config }} + - name: make + run: make $MARGS + - name: make check + run: make check diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 000000000..591486753 --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,32 @@ +name: macOS + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "trunk" ] + +env: + MARGS: "-j2" + +jobs: + + build: + strategy: + matrix: + os: [ "macos-latest" ] + + runs-on: ${{ matrix.os }} + env: + NOTEST_CFLAGS: ${{ matrix.notest-cflags }} + name: ${{ matrix.name }} + steps: + - uses: actions/checkout@v3 + - name: buildconf + run: ./buildconf + - name: configure + run: ./configure + - name: make + run: make $MARGS + - name: make check + run: make check || true diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 000000000..a7f7603bc --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,42 @@ +name: Windows + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "trunk" ] + +jobs: + build: + strategy: + matrix: + os: [windows-latest] + build-type: [Debug, Release] + generator: [ "Visual Studio 17 2022" ] + arch: [ "Win32", "x64" ] + toolset: [ "v143", "v142", "v141" ] + fail-fast: false + + name: "MSVC ${{ matrix.toolset }} ${{ matrix.arch }} [${{ matrix.build-type }}] on ${{ matrix.os }}" + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DAPR_BUILD_TESTAPR=ON -G "${{ matrix.generator }}" -A ${{ matrix.arch }} -T ${{ matrix.toolset }} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{ matrix.build-type }} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{ matrix.build-type }} --output-on-failure |