Skip to content

Default Win32 transport to WinHTTP and harden request lifetimes #6653

Default Win32 transport to WinHTTP and harden request lifetimes

Default Win32 transport to WinHTTP and harden request lifetimes #6653

name: Build and Run Unit/Functional tests on Windows
on:
push:
branches:
- master
- main
- dev
- dev/*
- release/*
- buildme/*
pull_request:
branches:
- master
- main
- dev
schedule:
- cron: 0 2 * * 1-5
# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
# and runs Windows unit/functional tests. Explicit block satisfies CodeQL
# rule actions/missing-workflow-permissions if Actions analysis is enabled.
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
test:
name: Test on Windows ${{ matrix.arch }}-${{ matrix.build }}${{ matrix.transport == 'WinInet' && ' (WinInet)' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
arch: [Win32, x64]
build: [Release, Debug]
transport: [WinHTTP, WinInet]
os: [windows-2022]
exclude:
- build: Debug
transport: WinInet
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- name: setup-msbuild
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
with:
vs-version: '[17,)'
- name: Test ${{ matrix.transport }} ${{ matrix.arch }} ${{ matrix.build }}
shell: cmd
run: build-tests.cmd ${{ matrix.arch }} ${{ matrix.build }} "" ${{ matrix.transport }}
- name: Upload test failure diagnostics
if: failure() || cancelled()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: windows-test-failure-${{ matrix.transport }}-${{ matrix.arch }}-${{ matrix.build }}
path: |
test-diagnostics
Solutions/out/${{ matrix.build }}/${{ matrix.arch }}/UnitTests/*.pdb
Solutions/out/${{ matrix.build }}/${{ matrix.arch }}/UnitTests/*.map
Solutions/out/${{ matrix.build }}/${{ matrix.arch }}/FuncTests/*.pdb
Solutions/out/${{ matrix.build }}/${{ matrix.arch }}/FuncTests/*.map
if-no-files-found: ignore
retention-days: 7
public-headers:
name: Public header gate (MSVC)
runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- name: Compile each public header standalone under /W4 /WX
shell: cmd
run: tests\headers\check_public_headers.cmd