# Copyright 2019 Ilya Shipitsin <chipitsine@gmail.com>
# Copyright 2020 Tim Duesterhus <tim@bastelstu.be>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.

name: Windows

on:
  push:

permissions:
  contents: read

jobs:
  msys2:
    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    defaults:
      run:
        shell: msys2 {0}
    strategy:
      matrix:
        include:
        - name: "Windows, gcc, all features"
          TARGET: cygwin
          CC: gcc
          os: windows-latest
          FLAGS:
          - USE_OPENSSL=1
          - USE_PCRE=1
          - USE_PCRE_JIT=1
          - USE_THREAD=1
          - USE_ZLIB=1
    steps:
    - uses: actions/checkout@v4
    - uses: msys2/setup-msys2@v2
      with:
        install: >-
          coreutils
          curl
          diffutils
          gawk
          gcc
          make
          tar
          openssl-devel
          pcre-devel
          zlib-devel
    - name: Compile HAProxy with ${{ matrix.CC }}
      run: |
        echo "::group::Show platform specific defines"
        echo | ${{ matrix.CC }} -dM -xc -E -
        echo "::endgroup::"
        make -j$(nproc) all \
          ERR=1 \
          TARGET=${{ matrix.TARGET }} \
          CC=${{ matrix.CC }} \
          DEBUG="-DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DDEBUG_POOL_INTEGRITY" \
          ${{ join(matrix.FLAGS, ' ') }}
    - name: Show HAProxy version
      id: show-version
      run: |
        ./haproxy -vv
        echo "version=$(./haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
