Files
strongswan-ext/.github/workflows/windows.yml
T
Tobias Brunner 19d73ef156 github: Move CI for Windows from AppVeyor to GitHub Actions
These are quite a bit faster than on AppVeyor (with ccache about a fifth,
without less than half - and they run concurrently).

We only keep the AppVeyor builds for now to test against those old
OpenSSL versions (1.1.1 and 1.0.2) for which there is still extended
support available.  Even simplified like that they still take longer
than the builds on GA.
2026-04-21 16:44:18 +02:00

111 lines
3.0 KiB
YAML

name: Windows
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
TESTS_REDUCED_KEYLENGTHS: yes
CCACHE_COMPRESS: true
CCACHE_MAXSIZE: 200M
# since the compilers are newly installed every time, we have to use this to
# avoid cache misses
CCACHE_COMPILERCHECK: content
MONOLITHIC: yes
jobs:
pre-check:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip-check.outputs.should_skip }}
steps:
- id: skip-check
uses: fkirc/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content_newer'
cross-compile:
needs: pre-check
if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
strategy:
matrix:
test: [ win64, win32 ]
env:
CCACHE_BASEDIR: ${{ github.workspace }}
OS_NAME: linux
TEST: ${{ matrix.test }}
steps:
- uses: actions/checkout@v6
- uses: actions/cache@v5
with:
path: ~/.cache/ccache
key: ccache-${{ runner.os }}-${{ matrix.test }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.test }}-
- run: |
sudo apt-get install -qq ccache
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
ccache -sz
- uses: ./.github/actions/default
- run: ccache -s
- if: ${{ failure() }}
uses: actions/upload-artifact@v6
with:
name: Logs ${{ github.job }}
path: config.log
retention-days: 5
native:
needs: pre-check
if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
runs-on: windows-latest
strategy:
matrix:
include:
- msystem: mingw64
arch: x86_64
test: win64
- msystem: mingw32
arch: i686
test: win32
env:
OS_NAME: windows
TEST: ${{ matrix.test }}
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v6
- uses: actions/cache@v5
with:
path: ~\AppData\Local\ccache
key: ccache-${{ runner.os }}-${{ matrix.test }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.test }}-
- run: |
pacman --noconfirm -S --needed mingw-w64-${{ matrix.arch }}-ccache
ccache -sz
- run: ./scripts/test.sh deps
# GITHUB_ENV doesn't work, so set PATH here
- name: Build and run tests
run: |
PATH=/${{ matrix.msystem }}/lib/ccache/bin:$PATH
./scripts/test.sh
# sometimes streaming/threading tests hang completely
timeout-minutes: 30
- run: ccache -s
- if: ${{ failure() }}
uses: actions/upload-artifact@v6
with:
name: Logs ${{ github.job }}
path: config.log
retention-days: 5