Generate Release #311
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: Generate Release | |
on: | |
workflow_run: | |
workflows: | |
- 'Update Version' | |
types: | |
- 'completed' | |
jobs: | |
build-portable-release: | |
runs-on: windows-latest | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
env: | |
DOTNET_NOLOGO: true | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
defaults: | |
run: | |
shell: | | |
pwsh -noninteractive -command "try {{ $ErrorActionPreference='Stop'; . '{0}' }} catch {{ Write-Error ""FAILED: $_""; throw; }} if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) {{ exit $LASTEXITCODE }}" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: '${{ github.ref }}' | |
- uses: actions/setup-dotnet@v3.2.0 | |
with: | |
dotnet-version: 6.0.x | |
- name: Create Staging Directory | |
run: mkdir "STAGING" | |
- name: Build VolumeControl Binary | |
run: dotnet publish VolumeControl -c Release -p:PublishProfile="VolumeControl/Properties/PublishProfiles/FolderProfile.pubxml" | |
- name: Stage Binary (Portable Version) | |
run: foreach($file in $((dir "publish" | where {$_.extension -in ".exe"}).Fullname)){ mv "$file" "STAGING" } | |
- name: Upload Executable Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: portable | |
path: '${{github.workspace}}/STAGING/*' | |
if-no-files-found: error | |
- name: Upload SDK Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sdk | |
path: '${{github.workspace}}/publish/SDK/*' | |
if-no-files-found: error | |
build-installer-release: | |
runs-on: windows-latest | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
env: | |
DOTNET_NOLOGO: true | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
defaults: | |
run: | |
shell: | | |
pwsh -noninteractive -command "try {{ $ErrorActionPreference='Stop'; . '{0}' }} catch {{ Write-Error ""FAILED: $_""; throw; }} if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) {{ exit $LASTEXITCODE }}" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: '${{ github.ref }}' | |
- uses: actions/setup-dotnet@v3.2.0 | |
with: | |
dotnet-version: 6.0.x | |
- name: Create Staging Directory | |
run: mkdir "STAGING" | |
- name: Prepare Installer Prerequisites | |
run: git clone https://github.com/DomGries/InnoDependencyInstaller | |
- name: Build VolumeControl Binary | |
run: dotnet publish VolumeControl -c Release-ForInstaller -p:PublishProfile="VolumeControl/Properties/PublishProfiles/PublishForInstaller.pubxml" | |
- name: Compile VolumeControl Installer | |
uses: Minionguyjpro/Inno-Setup-Action@v1.1.0 | |
with: | |
path: vcsetup.iss | |
options: /Opublish | |
- name: Stage Installer | |
run: foreach($file in $((dir "publish" | where {$_.extension -in ".exe"}).Fullname)){ mv "$file" "STAGING" } | |
- name: Upload Executable Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: installer | |
path: '${{github.workspace}}/STAGING/*' | |
if-no-files-found: error | |
create-release: | |
needs: [ build-portable-release, build-installer-release ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: ${{github.workspace}} | |
- name: Create SDK Archive | |
run: | | |
zip -T9 ./SDK.zip sdk/* | |
rm -rf sdk | |
ls -lAghR | |
- name: 'Create Release' | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
fail_on_unmatched_files: true | |
files: | | |
**/*.exe | |
SDK.zip |