Skip to content

Initial public release: NetBindPro v2.0.0 #1

Initial public release: NetBindPro v2.0.0

Initial public release: NetBindPro v2.0.0 #1

Workflow file for this run

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 }}