name: Build

on:
  push:
    branches: [ master ]
    tags:
      - 'v*'
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 0

    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: '9.0.x'

    - name: Restore dependencies
      run: dotnet restore FireflyClient.sln

    - name: Build
      run: |
        chmod +x build-all.sh
        ./build-all.sh

    - name: Upload artifacts
      uses: actions/upload-artifact@v4
      with:
        name: firefly-artifacts
        path: |
          artifacts/exe/*
          artifacts/native/*

    - name: Create Release
      if: startsWith(github.ref, 'refs/tags/v')
      uses: softprops/action-gh-release@v1
      with:
        files: |
          artifacts/exe/*
          artifacts/native/*
        generate_release_notes: true 