Workflow #5
Workflow file for this run
This file contains 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: Release with Tag Version | |
on: | |
push: | |
tags: | |
- 'v*.*.*' # Match version tags like v1.0.0 | |
jobs: | |
release: | |
runs-on: windows-latest # Use a Windows runner | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Extract version from tag | |
run: echo "VERSION=${GITHUB_REF_NAME#refs/tags/v}" >> $GITHUB_ENV | |
- name: Update version in .csproj | |
run: | | |
echo "Updating version in .csproj to ${VERSION}" | |
powershell -Command "(Get-Content CsvConverter/CsvConverter.csproj) -replace '<Version>.*</Version>', '<Version>${VERSION}</Version>' | Set-Content CsvConverter/CsvConverter.csproj" | |
- name: Set up .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '8.0.x' | |
# Publish self-contained version | |
- name: Publish self-contained application | |
run: dotnet publish CsvConverter/CsvConverter.csproj -c Release -o bin\Publish\SelfContained /p:SelfContained=true /p:RuntimeIdentifier=win-x86 /p:PublishSingleFile=true /p:PublishReadyToRun=false | |
# Publish framework-dependent version | |
- name: Publish framework-dependent application | |
run: dotnet publish CsvConverter/CsvConverter.csproj -c Release -o bin\Publish\FrameworkDependent /p:SelfContained=false /p:RuntimeIdentifier=win-x86 /p:PublishSingleFile=false /p:PublishReadyToRun=false | |
# Verify output directories | |
- name: Verify publish output | |
run: | | |
if (!(Test-Path -Path "bin\Publish\SelfContained")) { | |
Write-Error "Self-contained publish directory does not exist" | |
exit 1 | |
} | |
if (!(Test-Path -Path "bin\Publish\FrameworkDependent")) { | |
Write-Error "Framework-dependent publish directory does not exist" | |
exit 1 | |
} | |
Write-Host "Publish directories found" | |
# Archive self-contained version | |
- name: Archive self-contained binaries | |
run: | | |
mkdir release | |
powershell Compress-Archive -Path "bin\Publish\SelfContained\*" -DestinationPath "release\CsvConverter-SelfContained-${{ env.VERSION }}.zip" | |
# Archive framework-dependent version | |
- name: Archive framework-dependent binaries | |
run: | | |
powershell Compress-Archive -Path "bin\Publish\FrameworkDependent\*" -DestinationPath "release\CsvConverter-FrameworkDependent-${{ env.VERSION }}.zip" | |
# Create GitHub Release | |
- name: Create GitHub Release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref_name }} | |
release_name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
release\CsvConverter-SelfContained-${{ env.VERSION }}.zip | |
release\CsvConverter-FrameworkDependent-${{ env.VERSION }}.zip |