name: Build on: push: branches: master tags: - "v*" workflow_dispatch: jobs: build-linux: runs-on: ubuntu-latest timeout-minutes: 10 strategy: fail-fast: false steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.24" - name: Install Task uses: arduino/setup-task@v2 with: version: "3.x" repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install dependencies run: sudo apt-get install -y libgtk-3-dev libayatana-appindicator3-dev - name: Build Linux Binary run: task build - name: Get Version id: get_version run: | echo "VERSION=$(task version --silent)" >> $GITHUB_OUTPUT echo "BINARY_NAME=HATray-linux-amd64-$(task version --silent)" >> $GITHUB_OUTPUT - name: Rename Linux Binary with Version run: mv bin/HATray ${{ steps.get_version.outputs.BINARY_NAME }} - name: Upload Linux Binary uses: actions/upload-artifact@v4 with: name: ${{ steps.get_version.outputs.BINARY_NAME }} path: ${{ steps.get_version.outputs.BINARY_NAME }} if-no-files-found: error build-windows: runs-on: windows-latest timeout-minutes: 10 strategy: fail-fast: false steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.24" - name: Install Task uses: arduino/setup-task@v2 with: version: "3.x" repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build Windows Binary run: task build - name: Get Version id: get_version_win shell: pwsh run: | echo "VERSION=$(task version --silent)" >> $env:GITHUB_OUTPUT echo "BINARY_NAME=HATray-windows-amd64-$(task version --silent)" >> $env:GITHUB_OUTPUT - name: Rename Windows Binary with Version shell: pwsh run: Rename-Item -Path bin/HATray.exe -NewName "${{ steps.get_version_win.outputs.BINARY_NAME }}.exe" - name: Upload Windows Binary uses: actions/upload-artifact@v4 with: name: ${{ steps.get_version_win.outputs.BINARY_NAME }}.exe path: bin/${{ steps.get_version_win.outputs.BINARY_NAME }}.exe if-no-files-found: error - name: Set up .NET for WiX uses: actions/setup-dotnet@v4 with: dotnet-version: "8.0.x" - name: Install WiX Toolset run: dotnet tool install --global wix - name: Add WiX Extensions run: | wix extension add WixToolset.Util.wixext wix extension add WixToolset.UI.wixext - name: Build MSI run: task package - name: Rename MSI with Version shell: pwsh run: Rename-Item -Path bin/HATray.msi -NewName "${{ steps.get_version_win.outputs.BINARY_NAME }}.msi" - name: Upload MSI uses: actions/upload-artifact@v4 with: name: ${{ steps.get_version_win.outputs.BINARY_NAME }}.msi path: bin/${{ steps.get_version_win.outputs.BINARY_NAME }}.msi if-no-files-found: error