Skip to content
name: Build and Deploy
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master ]
defaults:
run:
working-directory: src
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
# configuration: [Debug, Release]
configuration: [Debug]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: Restore dependencies
run: dotnet restore
- name: Check current directory and files
run: |
echo "Current Directory: $(pwd)"
echo "Files in current directory:"
ls -Recurse
shell: pwsh
- name: Update version
id: update_version
run: |
$version_file = "src/kasthack.binding.wf.csproj"
$current_version = (Select-String -Path $version_file -Pattern '<Version>(.*?)</Version>' | ForEach-Object { $_.Matches.Groups[1].Value })
$build_number = ${GITHUB_RUN_NUMBER}
$new_version = "${current_version.Split('.')[0..1] -join '.'}.${build_number}"
(Get-Content $version_file) -replace '<Version>.*</Version>', "<Version>$new_version</Version>" | Set-Content $version_file
(Get-Content $version_file) -replace '<AssemblyVersion>.*</AssemblyVersion>', "<AssemblyVersion>${new_version}.0</AssemblyVersion>" | Set-Content $version_file
echo "new_version=$new_version" >> $GITHUB_ENV
shell: pwsh
- name: Build
run: dotnet build --configuration ${{ matrix.configuration }} --verbosity minimal
# - name: Publish NuGet package
# if: matrix.configuration == 'Release'
# run: dotnet pack --configuration Release --output ./nupkg
# - name: Push NuGet package
# if: matrix.configuration == 'Release'
# run: dotnet nuget push ./nupkg/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json
- name: Create GitHub Release
if: matrix.configuration == 'Release'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.new_version }}
name: ${{ env.new_version }}
files: ./nupkg/*.nupkg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}