# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: build KCC for windows

on:
  workflow_dispatch:
  push:
    tags:
      - "v*.*.*"

    # Don't trigger if it's just a documentation update
    paths-ignore:
      - '**.md'
      - '**.MD'
      - '**.yml'
      - '**.sh'
      - 'docs/**'
      - 'Dockerfile'
      - 'LICENSE'
      - '.gitattributes'
      - '.gitignore'
      - '.dockerignore'

jobs:
  build:
    strategy:
      matrix:
        entry: [ kcc, kcc-c2e, kcc-c2p ]
        include:
          - entry: kcc
            command: build_binary
          - entry: kcc-c2e
            command: build_c2e
          - entry: kcc-c2p
            command: build_c2p
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v6
      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: 3.11
          cache: 'pip'
      - name: Install dependencies
        env:
          PYINSTALLER_COMPILE_BOOTLOADER: 1
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          pip install certifi pyinstaller --no-binary pyinstaller
      - name: build binary
        run: |
          python setup.py ${{ matrix.command }}
      - name: upload-unsigned-artifact
        id: upload-unsigned-artifact
        uses: actions/upload-artifact@v7
        with:
          name: windows-build-${{ matrix.entry }}
          path: dist/*.exe
      - id: optional_step_id
        uses: signpath/github-action-submit-signing-request@v2.2
        if: ${{ github.repository == 'ciromattia/kcc' }}
        with:
         api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
         organization-id: '1dc1bad6-4a8c-4f85-af30-5c5d3d392ea6'
         project-slug: 'kcc'
         signing-policy-slug: 'release-signing'
         github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}'
         wait-for-completion: true
         output-artifact-directory: 'dist/'
      - name: Release
        uses: softprops/action-gh-release@v3
        if: startsWith(github.ref, 'refs/tags/')
        with:
          prerelease: true
          generate_release_notes: false
          files: |
            dist/*.exe
