# This workflow generates artifacts such as avifenc.exe and avifdec.exe for convenience.

name: CI Windows Release Artifacts
on:
  release:
    types: [created]

permissions:
  contents: write

jobs:
  build-windows-artifacts:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest]

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: ./.github/actions/setup-windows
        id: setup
        with:
          codec-aom: "LOCAL"
          codec-dav1d: "LOCAL"

      - name: Build aom
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./aom.cmd
      - name: Build dav1d
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./dav1d.cmd
      - name: Build libyuv
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./libyuv.cmd
        # Use clang-cl to build libyuv. The assembly code in libyuv is written in the
        # GCC inline assembly format. Visual C++ doesn't support GCC inline assembly.
        env:
          CC: clang-cl
          CXX: clang-cl
      - name: Build libsharpyuv
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./libsharpyuv.cmd
      - name: Build libjpeg
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./libjpeg.cmd
      - name: Build zlib and libpng
        if: steps.setup.outputs.ext-cache-hit != 'true'
        working-directory: ./ext
        run: ./zlibpng.cmd

      - name: Prepare libavif (cmake)
        run: >
          cmake -G Ninja -S . -B build
          -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
          -DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_AOM_ENCODE=ON
          -DAVIF_CODEC_AOM_DECODE=OFF -DAVIF_CODEC_DAV1D=LOCAL
          -DAVIF_LIBYUV=LOCAL -DAVIF_LIBSHARPYUV=LOCAL
          -DAVIF_JPEG=LOCAL -DAVIF_ZLIBPNG=LOCAL
          -DAVIF_BUILD_EXAMPLES=OFF -DAVIF_BUILD_APPS=ON
          -DAVIF_BUILD_TESTS=OFF -DAVIF_ENABLE_WERROR=ON
      - name: Build libavif (ninja)
        working-directory: ./build
        run: ninja
      - name: Archive artifacts
        uses: thedoctor0/zip-release@b57d897cb5d60cb78b51a507f63fa184cfe35554 # 0.7.6
        with:
          type: "zip"
          filename: "windows-artifacts.zip"
          directory: "build"
          path: "*.exe"
      - name: Upload artifacts
        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          # See https://docs.github.com/en/webhooks/webhook-events-and-payloads#release.
          upload_url: ${{ github.event.release.upload_url }}
          asset_path: build/windows-artifacts.zip
          asset_name: windows-artifacts.zip
          asset_content_type: application/zip

    # Use the following instead of the above to test this workflow outside of a release event.
    # - name: Upload artifacts
    #   uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
    #   with:
    #     name: windows-artifacts.zip
    #     path: build/windows-artifacts.zip
