opencc-sys 0.4.3+1.3.1

OpenCC bindings for Rust
Documentation
name: Windows Release for WinGet

on:
  push:
    tags:
      - "ver.*"
  workflow_dispatch:
    inputs:
      version:
        description: "Release version or tag, for example 1.2.0, 1.2.1-rc1, 1.2.1-alpha1, or ver.1.2.0"
        required: false

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build-release:
    runs-on: windows-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: ilammy/msvc-dev-cmd@v1
        with:
          arch: amd64

      - name: Resolve version
        id: version
        shell: pwsh
        env:
          INPUT_VERSION: ${{ github.event.inputs.version }}
          GIT_REF_TYPE: ${{ github.ref_type }}
          GIT_REF_NAME: ${{ github.ref_name }}
        run: |
          $value = $env:INPUT_VERSION
          if (-not $value -and $env:GIT_REF_TYPE -eq "tag") {
            $value = $env:GIT_REF_NAME
          }
          if ($value.StartsWith("ver.")) {
            $clean = $value.Substring(4)
          } elseif ($value.StartsWith("v")) {
            $clean = $value.Substring(1)
          } else {
            $clean = $value
          }
          "value=$clean" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append

      - name: Build portable release and WinGet manifests
        shell: pwsh
        env:
          RELEASE_VERSION: ${{ steps.version.outputs.value }}
          GITHUB_REPO: ${{ github.repository }}
        run: |
          ./scripts/release-windows-winget.ps1 `
            -Version "$env:RELEASE_VERSION" `
            -OutputDir release `
            -GitHubRepository "$env:GITHUB_REPO" `
            -PackageIdentifier "BYVoid.OpenCC" `
            -Publisher "BYVoid"

      - name: Upload release artifacts
        uses: actions/upload-artifact@v4
        with:
          name: opencc-winget-release-${{ steps.version.outputs.value }}
          path: |
            release/*.zip
            release/*.sha256
            release/winget-manifests/**

      - name: Publish GitHub release
        if: startsWith(github.ref, 'refs/tags/')
        uses: softprops/action-gh-release@v2
        with:
          files: |
            release/*.zip
            release/*.sha256
          generate_release_notes: true