Skip to content

Incremented version number #1

Incremented version number

Incremented version number #1

Workflow file for this run

name: "Build, Test, and Release SharesGainLossTracker"
on:
push:
tags:
- "v*"
env:
ConsoleApp_NS: Metalhead.SharesGainLossTracker.ConsoleApp
ConsoleApp_EXE: SharesGainLossTracker.ConsoleApp
ConsoleApp_TF: net6.0
WpfApp_NS: Metalhead.SharesGainLossTracker.WpfApp
WpfApp_EXE: SharesGainLossTracker.WpfApp
WpfApp_TF: net6.0-windows
jobs:
build-console-app:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Restore dependencies
run: dotnet restore ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj
- name: Build
run: dotnet build ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj -c Release --no-restore
test-console-app:
runs-on: windows-latest
needs: build-console-app
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Execute unit test
run: dotnet test
publish-console-app:
runs-on: windows-latest
needs: test-console-app
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Create ClickOnce ${{ env.ConsoleApp_NS }}.exe (win-x64 self-contained)
run: dotnet publish ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
- name: Rename ${{ env.ConsoleApp_NS }}.exe to ${{ env.ConsoleApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/publish/${{ env.ConsoleApp_NS }}.exe ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/publish/${{ env.ConsoleApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.ConsoleApp_NS }}.exe (win-x86 self-contained)
run: dotnet publish ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj -c Release -r win-x86 --self-contained -p:PublishSingleFile=true
- name: Rename ${{ env.ConsoleApp_NS }}.exe to ${{ env.ConsoleApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/publish/${{ env.ConsoleApp_NS }}.exe ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/publish/${{ env.ConsoleApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.ConsoleApp_NS }}.exe (win-x64)
run: dotnet publish ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj -c Release -r win-x64 --no-self-contained -p:PublishSingleFile=true -p:PublishTrimmed=false -o ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/non-self/publish
- name: Rename ${{ env.ConsoleApp_NS }}.exe to ${{ env.ConsoleApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/non-self/publish/${{ env.ConsoleApp_NS }}.exe ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.ConsoleApp_NS }}.exe (win-x86)
run: dotnet publish ${{ env.ConsoleApp_NS }}/${{ env.ConsoleApp_NS }}.csproj -c Release -r win-x86 --no-self-contained -p:PublishSingleFile=true -p:PublishTrimmed=false -o ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/non-self/publish
- name: Rename ${{ env.ConsoleApp_NS }}.exe to ${{ env.ConsoleApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/non-self/publish/${{ env.ConsoleApp_NS }}.exe ${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
- name: Upload console app publish files
uses: actions/upload-artifact@v3
with:
name: ConsoleAppFiles
path: |
${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/publish/${{ env.ConsoleApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/publish/${{ env.ConsoleApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x64/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
${{ env.ConsoleApp_NS }}/bin/Release/${{ env.ConsoleApp_TF }}/win-x86/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
retention-days: 1
build-wpf-app:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Restore dependencies
run: dotnet restore ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj
- name: Build
run: dotnet build ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj -c Release --no-restore
- name: Execute unit tests
run: dotnet test
test-wpf-app:
runs-on: windows-latest
needs: build-wpf-app
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Execute unit tests
run: dotnet test
publish-wpf-app:
runs-on: windows-latest
needs: test-wpf-app
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Create ClickOnce ${{ env.WpfApp_NS }}.exe (win-x64 self-contained)
run: dotnet publish ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
- name: Rename ${{ env.WpfApp_NS }}.exe to ${{ env.WpfApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/publish/${{ env.WpfApp_NS }}.exe ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/publish/${{ env.WpfApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.WpfApp_NS }}.exe (win-x86 self-contained)
run: dotnet publish ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj -c Release -r win-x86 --self-contained -p:PublishSingleFile=true
- name: Rename ${{ env.WpfApp_NS }}.exe to ${{ env.WpfApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/publish/${{ env.WpfApp_NS }}.exe ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/publish/${{ env.WpfApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.WpfApp_NS }}.exe (win-x64)
run: dotnet publish ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj -c Release -r win-x64 --no-self-contained -p:PublishSingleFile=true -p:PublishTrimmed=false -o ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/non-self/publish
- name: Rename ${{ env.WpfApp_NS }}.exe to ${{ env.WpfApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/non-self/publish/${{ env.WpfApp_NS }}.exe ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/non-self/publish/${{ env.WpfApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
- name: Create ClickOnce ${{ env.WpfApp_NS }}.exe (win-x86)
run: dotnet publish ${{ env.WpfApp_NS }}/${{ env.WpfApp_NS }}.csproj -c Release -r win-x86 --no-self-contained -p:PublishSingleFile=true -p:PublishTrimmed=false -o ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/non-self/publish
- name: Rename ${{ env.WpfApp_NS }}.exe to ${{ env.WpfApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
run: mv ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/non-self/publish/${{ env.WpfApp_NS }}.exe ${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/non-self/publish/${{ env.WpfApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
- name: Upload WPF app publish files
uses: actions/upload-artifact@v3
with:
name: WpfAppFiles
path: |
${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/publish/${{ env.WpfApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/publish/${{ env.WpfApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x64/non-self/publish/${{ env.WpfApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
${{ env.WpfApp_NS }}/bin/Release/${{ env.WpfApp_TF }}/win-x86/non-self/publish/${{ env.WpfApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
retention-days: 1
release:
runs-on: windows-latest
needs: [publish-console-app, publish-wpf-app]
permissions:
contents: write
steps:
- name: Download console app files
uses: actions/download-artifact@v3
with:
name: ConsoleAppFiles
path: console-app-files
- name: Download WPF app files
uses: actions/download-artifact@v3
with:
name: WpfAppFiles
path: wpf-app-files
- name: Create GitHub release (draft)
uses: softprops/action-gh-release@v1
with:
files: |
console-app-files/win-x64/publish/${{ env.ConsoleApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
console-app-files/win-x86/publish/${{ env.ConsoleApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
console-app-files/win-x64/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
console-app-files/win-x86/non-self/publish/${{ env.ConsoleApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
wpf-app-files/win-x64/publish/${{ env.WpfApp_EXE }}-win-x64-with-runtime-${{ github.ref_name }}.exe
wpf-app-files/win-x86/publish/${{ env.WpfApp_EXE }}-win-x86-with-runtime-${{ github.ref_name }}.exe
wpf-app-files/win-x64/non-self/publish/${{ env.WpfApp_EXE }}-win-x64-without-runtime-${{ github.ref_name }}.exe
wpf-app-files/win-x86/non-self/publish/${{ env.WpfApp_EXE }}-win-x86-without-runtime-${{ github.ref_name }}.exe
tag_name: ${{ github.ref_name }}
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}