Skip to content

Add install and test for windows. #1173

Add install and test for windows.

Add install and test for windows. #1173

Workflow file for this run

name: Windows
on:
push:
branches: [ "*" ]
paths-ignore:
- 'docs/**'
- STATUS
- CHANGES
- README*
- '**.md'
- changes-entries/*
- 'modules/arch/unix/**'
- 'os/unix/**'
- server/mpm_unix.c
- 'test/modules/arch/linux/**'
tags:
- 2.*
pull_request:
branches: [ "trunk", "2.4.x" ]
paths-ignore:
- 'docs/**'
- STATUS
- CHANGES
- README*
- '**.md'
- changes-entries/*
- 'modules/arch/unix/**'
- 'os/unix/**'
- server/mpm_unix.c
- 'test/modules/arch/linux/**'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- name: Default
triplet: x64-windows
arch: x64
build-type: Debug
generator: "Visual Studio 17 2022"
runs-on: windows-latest
timeout-minutes: 30
name: ${{ matrix.name }}
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
steps:
- name: Prepare Environment
run: |
$root = &(Join-Path ${env:ProgramFiles(x86)} "\Microsoft Visual Studio\Installer\vswhere.exe") -property installationpath -latest
Import-Module (Join-Path $root "Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
Enter-VsDevShell -VsInstallPath $root -DevCmdArguments "-arch=${{ matrix.arch }}"
ls env: | foreach { "$($_.Name)=$($_.Value)" >> $env:GITHUB_ENV }
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v8
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Install dependencies
run: vcpkg install --triplet ${{ matrix.triplet }} apr[private-headers] apr-util pcre2 openssl nghttp2 curl libxml2 jansson
- uses: actions/checkout@v6
- name: Configure CMake
run: |
cmake --version
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} `
-G "${{ matrix.generator }}" `
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake `
-DAPR_INCLUDE_DIR=C:/vcpkg/installed/${{ matrix.triplet }}/include `
"-DAPR_LIBRARIES=C:/vcpkg/installed/${{ matrix.triplet }}/lib/libapr-1.lib;C:/vcpkg/installed/${{ matrix.triplet }}/lib/libaprutil-1.lib" `
-DNGHTTP2_INCLUDE_DIR=C:/vcpkg/installed/${{ matrix.triplet }}/include `
-DNGHTTP2_LIBRARIES=C:/vcpkg/installed/${{ matrix.triplet }}/lib/nghttp2.lib `
-DJANSSON_LIBRARIES=C:/vcpkg/installed/${{ matrix.triplet }}/lib/jansson.lib `
-DBUILD_TEST_MODULES=true
- name: Build
run: |
cmake --build ${{github.workspace}}/build --config ${{ matrix.build-type }}
- name: Install
run: |
cmake --install ${{github.workspace}}/build --config ${{ matrix.build-type }}
- name: Check httpd
run: |
& "C:\Program Files (x86)\HTTPD\bin\httpd.exe" -V
& "C:\Program Files (x86)\HTTPD\bin\httpd.exe" -t -f "C:\Program Files (x86)\HTTPD\conf\httpd.conf"
- name: Test
env:
VCPKG_DIR: C:\vcpkg
VCPKG_TRIPLET: ${{ matrix.triplet }}
run: |
${{github.workspace}}\test\pyhttpd\install_tools.bat "C:\Program Files (x86)\HTTPD"
${{github.workspace}}\test\pyhttpd\runtests.bat --httpd "C:\Program Files (x86)\HTTPD\bin\httpd.exe" --conf "C:\Program Files (x86)\HTTPD\conf\httpd.conf" -vvvv -x
- name: Upload test logs
if: always()
uses: actions/upload-artifact@v4
with:
name: test-logs
path: |
C:\Program Files (x86)\HTTPD\logs\
${{github.workspace}}\test\gen\apache\logs\