Initial public release: NetBindPro v2.0.0 #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI / Release | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| tags: [ 'v*.*.*' ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| env: | |
| DOTNET_VERSION: '8.0.x' | |
| SOLUTION: 'NetBindPro.sln' | |
| CONFIGURATION: 'Release' | |
| jobs: | |
| # ───────────────────────────────────────────────────────────────────────── | |
| build: | |
| name: Build | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ env.DOTNET_VERSION }} | |
| - name: Restore NuGet packages | |
| run: dotnet restore ${{ env.SOLUTION }} | |
| - name: Build (x64) | |
| run: | | |
| dotnet build ${{ env.SOLUTION }} ` | |
| --configuration ${{ env.CONFIGURATION }} ` | |
| --no-restore ` | |
| /p:Platform=x64 | |
| # ───────────────────────────────────────────────────────────────────────── | |
| publish: | |
| name: Publish | |
| runs-on: windows-latest | |
| needs: build | |
| if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ env.DOTNET_VERSION }} | |
| - name: Restore | |
| run: dotnet restore ${{ env.SOLUTION }} | |
| - name: Publish UI (self-contained, x64) | |
| run: | | |
| dotnet publish src/NetBindPro.UI/NetBindPro.UI.csproj ` | |
| --configuration Release ` | |
| --runtime win-x64 ` | |
| --self-contained false ` | |
| --output publish/win-x64 ` | |
| /p:Platform=x64 ` | |
| /p:PublishSingleFile=false | |
| - name: Publish Hook x64 | |
| run: | | |
| dotnet publish src/NetBindPro.Hook/NetBindPro.Hook.csproj ` | |
| --configuration Release ` | |
| --runtime win-x64 ` | |
| --self-contained false ` | |
| --output publish/win-x64 ` | |
| /p:Platform=x64 | |
| - name: Publish Hook x86 | |
| run: | | |
| dotnet publish src/NetBindPro.Hook/NetBindPro.Hook.csproj ` | |
| --configuration Release ` | |
| --runtime win-x86 ` | |
| --self-contained false ` | |
| --output publish/win-x86 ` | |
| /p:Platform=x86 | |
| - name: Copy Hook x86 to output | |
| run: | | |
| Copy-Item publish/win-x86/NetBindPro.Hook.exe ` | |
| publish/win-x64/NetBindPro.Hook.x86.exe | |
| - name: Build Installer (Inno Setup) | |
| uses: Minionguyjpro/Inno-Setup-Action@v1.2.2 | |
| with: | |
| path: installer/NetBindPro.Setup.iss | |
| options: /O"publish/installer" | |
| - name: Upload installer artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: NetBindPro-installer | |
| path: publish/installer/*.exe | |
| retention-days: 30 | |
| - name: Upload portable artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: NetBindPro-portable-win-x64 | |
| path: publish/win-x64/ | |
| retention-days: 30 | |
| # ───────────────────────────────────────────────────────────────────────── | |
| release: | |
| name: GitHub Release | |
| runs-on: windows-latest | |
| needs: publish | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download installer | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: NetBindPro-installer | |
| path: dist/ | |
| - name: Get version from tag | |
| id: version | |
| run: echo "version=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: "NetBind Pro v${{ steps.version.outputs.version }}" | |
| body_path: CHANGELOG.md | |
| draft: false | |
| prerelease: ${{ contains(github.ref, '-beta') || contains(github.ref, '-rc') }} | |
| files: | | |
| dist/*.exe | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |