name: cygwin

concurrency:
  group: cygwin-${{ github.head_ref || github.ref }}
  cancel-in-progress: true

on:
  push:
    branches:
      - master
      # Stable branches such as 0.56 or 1.0
      - '[0-9]+.[0-9]+'
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - "unittests/**"
      - ".github/workflows/cygwin.yml"
      - "run*tests.py"
  pull_request:
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - "unittests/**"
      - ".github/workflows/cygwin.yml"
      - "run*tests.py"

permissions:
  contents: read

jobs:
  test:
    runs-on: windows-latest
    name: ${{ matrix.NAME }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - NAME: gccx64ninja
            ARCH: x86_64
    env:
      MESON_CI_JOBNAME: cygwin-${{ matrix.NAME }}

    steps:
      # remove inheritable permissions since they break assumptions testsuite
      # makes about file modes
      - run: icacls . /inheritance:r /T /C

      - run: git config --global core.autocrlf input

      - uses: actions/checkout@v4

      - uses: cygwin/cygwin-install-action@v6
        with:
          platform: ${{ matrix.ARCH }}
          packages: |
            cmake
            gcc-fortran
            gcc-objc++
            gcc-objc
            gcovr
            git
            gobject-introspection
            gtk-doc
            libboost-devel
            libglib2.0-devel
            libgtk3-devel
            make
            ninja
            python312-devel
            python312-fastjsonschema
            python312-pefile
            python312-pip
            python312-wheel
            vala
            zlib-devel

      - name: Find pip cache dir
        id: pip-cache
        run: |
          export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32
          echo "dir=$(cygpath -wa $(python3 -m pip cache dir))" >> "$GITHUB_OUTPUT"
        shell: bash --noprofile --norc -o igncr -eo pipefail '{0}'

      - uses: actions/cache/restore@v4
        id: restore-cache
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: cygwin-pip-${{ github.run_number }}
          restore-keys: cygwin-pip-

      - name: Run pip
        run: |
          export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32
          python3 -m pip --disable-pip-version-check install pytest pytest-subtests pytest-xdist
        shell: bash --noprofile --norc -o igncr -eo pipefail '{0}'

      - uses: actions/cache/save@v4
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: cygwin-pip-${{ github.run_number }}

      - name: Run tests
        run: |
          export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32
          python3 ./run_tests.py --backend=ninja
        env:
          # Cygwin's static boost installation is broken (some static library
          # variants such as boost_thread are not present)
          SKIP_STATIC_BOOST: 1
        shell: bash --noprofile --norc -o igncr -eo pipefail '{0}'

      - uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.NAME }}
          path: meson-test-run.*
        # test log should be saved on failure
        if: ${{ !cancelled() }}
