diff options
Diffstat (limited to '')
-rw-r--r-- | .github/workflows/linux.yml | 24 | ||||
-rw-r--r-- | .github/workflows/macos.yml | 5 | ||||
-rw-r--r-- | .github/workflows/windows-vcpkg.yml | 44 | ||||
-rw-r--r-- | .github/workflows/windows.yml | 9 |
4 files changed, 73 insertions, 9 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index e624171..6943534 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -5,7 +5,7 @@ on: branches: [ "*" ] tags: [ "*" ] pull_request: - branches: [ "trunk" ] + branches: [ "trunk", "1.7.x" ] env: MARGS: "-j2" @@ -17,10 +17,18 @@ jobs: matrix: include: - name: Default + # Check default shm decision logic for Linux: + config-output: APR_USE_SHMEM_MMAP_SHM APR_USE_SHMEM_MMAP_ANON - name: Static config: --enable-static - name: Maintainer-mode config: --enable-maintainer-mode + - name: Named SHM - SysV, Maintainer-mode + config: --enable-maintainer-mode --enable-sysv-shm + config-output: APR_USE_SHMEM_SHMGET + - name: Named SHM - Classic mmap, Maintainer-mode + config: --enable-maintainer-mode ac_cv_func_shm_open=no ac_cv_func_shmget=no + config-output: APR_USE_SHMEM_MMAP_TMP - name: Pool-debug config: --enable-pool-debug - name: Pool-debug, maintainer-mode @@ -49,12 +57,20 @@ jobs: steps: - name: Install prerequisites run: sudo apt-get install libtool libtool-bin - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + # https://github.com/actions/runner-images/issues/9491#issuecomment-1989718917 + - name: Workaround ASAN issue in Ubuntu 22.04 runners + run: sudo sysctl vm.mmap_rnd_bits=28 - name: buildconf run: ./buildconf - name: configure - run: ./configure ${{ matrix.config }} + run: ./configure --prefix=/tmp/apr ${{ matrix.config }} + - if: ${{ matrix.config-output != '' }} + name: check for expected configure output ${{ matrix.config-output }} + run: for var in ${{ matrix.config-output }}; do grep "^#define *${var} *1" include/apr.h; done - name: make run: make $MARGS - - name: make check + - name: install + run: make install + - name: check run: make check diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 8647702..1d70a89 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -18,11 +18,14 @@ jobs: os: [ "macos-latest" ] runs-on: ${{ matrix.os }} + timeout-minutes: 15 env: NOTEST_CFLAGS: ${{ matrix.notest-cflags }} name: ${{ matrix.name }} steps: - - uses: actions/checkout@v3 + - name: Install prerequisites + run: brew install libtool autoconf make bash + - uses: actions/checkout@v4 - name: buildconf run: ./buildconf - name: configure diff --git a/.github/workflows/windows-vcpkg.yml b/.github/workflows/windows-vcpkg.yml new file mode 100644 index 0000000..80062e2 --- /dev/null +++ b/.github/workflows/windows-vcpkg.yml @@ -0,0 +1,44 @@ +name: Vcpkg (Windows)
+
+on:
+ push:
+ branches: [ "1.7.x*" ]
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ os: [windows-latest]
+ triplet:
+ - x64-windows
+ - x64-windows-static
+ - x64-windows-static-md
+ - x86-windows
+ - x86-windows-static
+ port:
+ - apr
+ - apr[core]
+ - apr[private-headers]
+ fail-fast: false
+
+ name: "${{ matrix.port }}:${{ matrix.triplet }} 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 }}
+
+ env:
+ VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
+
+ steps:
+ - name: Export GitHub Actions cache environment variables
+ uses: actions/github-script@v7
+ with:
+ script: |
+ core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
+ core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
+
+ - uses: actions/checkout@v4
+
+ - name: Vcpkg Install
+ run: C:\vcpkg\vcpkg.exe install ${{ matrix.port }} --head --overlay-ports ${{ github.workspace }}\build\vcpkg --triplet ${{ matrix.triplet }} --enforce-port-checks
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 96b303f..97d369e 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -15,22 +15,23 @@ jobs: build-type: [Debug, Release] generator: [ "Visual Studio 17 2022" ] arch: [ "Win32", "x64" ] - toolset: [ "v143", "v142", "v141" ] + toolset: [ "v143", "v142" ] + test-static: [ "ON", "OFF" ] fail-fast: false - name: "MSVC ${{ matrix.toolset }} ${{ matrix.arch }} [${{ matrix.build-type }}] on ${{ matrix.os }}" + name: "MSVC ${{ matrix.toolset }} ${{ matrix.arch }} [${{ matrix.build-type }}] test-static=${{ matrix.test-static }} 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 + - uses: actions/checkout@v4 - 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 }} + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DAPR_BUILD_TESTAPR=ON -DTEST_STATIC_LIBS=${{ matrix.test-static }} -G "${{ matrix.generator }}" -A ${{ matrix.arch }} -T ${{ matrix.toolset }} - name: Build # Build your program with the given configuration |