# Licensed under the Apache-2.0 license

name: Release

on:
  push:
    tags:
      - 'v*'

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: 1

jobs:
  create-release:
    name: Create Release
    runs-on: ubuntu-latest
    outputs:
      upload_url: ${{ steps.create_release.outputs.upload_url }}
    steps:
    - name: Create Release
      id: create_release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false

  build-release:
    name: Build Release
    needs: create-release
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            binary_name: openprot
            asset_name: openprot-linux-x86_64
          - os: windows-latest
            target: x86_64-pc-windows-msvc
            binary_name: openprot.exe
            asset_name: openprot-windows-x86_64.exe
          - os: macos-latest
            target: x86_64-apple-darwin
            binary_name: openprot
            asset_name: openprot-macos-x86_64

    steps:
    - uses: actions/checkout@v5
    
    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable
      with:
        targets: ${{ matrix.target }}
    
    - name: Cache cargo registry
      uses: actions/cache@v4
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-${{ matrix.target }}-release-cargo-${{ hashFiles('**/Cargo.lock') }}
    
    - name: Build release
      run: cargo build --release --target ${{ matrix.target }}
    
    - name: Strip binary (Unix)
      if: matrix.os != 'windows-latest'
      run: strip target/${{ matrix.target }}/release/${{ matrix.binary_name }}
    
    - name: Create archive (Unix)
      if: matrix.os != 'windows-latest'
      run: |
        mkdir -p dist
        cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} dist/
        cp README.md dist/
        cp LICENSE dist/
        tar -czf ${{ matrix.asset_name }}.tar.gz -C dist .
    
    - name: Create archive (Windows)
      if: matrix.os == 'windows-latest'
      run: |
        mkdir dist
        cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} dist/
        cp README.md dist/
        cp LICENSE dist/
        Compress-Archive -Path dist/* -DestinationPath ${{ matrix.asset_name }}.zip
    
    - name: Upload Release Asset (Unix)
      if: matrix.os != 'windows-latest'
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ needs.create-release.outputs.upload_url }}
        asset_path: ./${{ matrix.asset_name }}.tar.gz
        asset_name: ${{ matrix.asset_name }}.tar.gz
        asset_content_type: application/gzip
    
    - name: Upload Release Asset (Windows)
      if: matrix.os == 'windows-latest'
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ needs.create-release.outputs.upload_url }}
        asset_path: ./${{ matrix.asset_name }}.zip
        asset_name: ${{ matrix.asset_name }}.zip
        asset_content_type: application/zip

  publish-crates:
    name: Publish to crates.io
    runs-on: ubuntu-latest
    needs: build-release
    if: startsWith(github.ref, 'refs/tags/')
    steps:
    - uses: actions/checkout@v5
    
    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable
    
    - name: Cache cargo registry
      uses: actions/cache@v4
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-publish-cargo-${{ hashFiles('**/Cargo.lock') }}
    
    - name: Publish to crates.io
      run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }}
      working-directory: ./openprot
