Skip to content

Merge pull request #422 from Sidekick-Poe/feature/pseudo-modifiers #9

Merge pull request #422 from Sidekick-Poe/feature/pseudo-modifiers

Merge pull request #422 from Sidekick-Poe/feature/pseudo-modifiers #9

name: ClickOnce Beta
on:
push:
branches:
- main
workflow_dispatch:
jobs:
wpf-beta:
runs-on: windows-latest
steps:
- name: Git - Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Version
id: version
run: |
# Get the current date
$DATE = Get-Date -Format "yyyy.M.d"
# Get the current time in hours and minutes (24-hour format)
$TIME = Get-Date -Format "Hmm"
# Construct the version using DATE and TIME
$VERSION = "$DATE.$TIME"
Write-Output "Generated version: $VERSION"
# Export version as an output
echo "version=$VERSION" >> $env:GITHUB_OUTPUT
- name: Version - Update project files
uses: vers-one/[email protected]
with:
file: "src/**/*.csproj"
version: ${{ steps.version.outputs.version }}
- name: Environment - Build Number
uses: myci-actions/export-env-var@1
with:
name: BUILD_NUMBER
value: ${{ steps.version.outputs.version }}
- name: Environment - Github Token
uses: myci-actions/export-env-var@1
with:
name: GITHUB_TOKEN
value: ${{ github.token }}
- name: .NET - Setup
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.x
- name: .NET - Restore
run: dotnet restore
- name: .NET - Build
run: dotnet build --no-restore
- name: .NET - Tests
run: dotnet test --no-build --verbosity normal
- name: Build - Sidekick.Protocol
run: dotnet publish src/Sidekick.Protocol/Sidekick.Protocol.csproj -p:PublishProfile=Build
- name: ClickOnce - Build
shell: pwsh
run: |
$version = "${{ steps.version.outputs.version }}"
Write-Output "Version: $version"
# Find MSBuild.
$msBuildPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" `
-latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe `
-prerelease | select-object -first 1
Push-Location "src/Sidekick.Wpf"
& $msBuildPath Sidekick.Wpf.csproj /target:Publish /property:PublishProfile=ClickOnceBeta /property:ApplicationVersion=$version
Pop-Location
- name: ClickOnce - Git Setup
run: |
git config --global url."https://user:${{ secrets.GITHUB_TOKEN }}@github".insteadOf https://github
git config --global user.name github-actions
git config --global user.email [email protected]
- name: ClickOnce - Git Setup SSH
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.DEPLOY_BETA_KEY }}
- name: ClickOnce - Git Push
shell: pwsh
run: |
$deployRepository = "[email protected]:Sidekick-Poe/Sidekick-Beta.git"
Write-Output "Deploy repository: $deployRepository"
# Clone `gh-pages` branch.
git clone $deployRepository -b gh-pages --single-branch "dist"
Push-Location "dist"
try {
Write-Output "Removing previous files..."
if (Test-Path "Application Files") {
Remove-Item -Path "Application Files" -Recurse
}
if (Test-Path "Sidekick.application") {
Remove-Item -Path "Sidekick.application"
}
Write-Output "Copying new files..."
Copy-Item -Path "../src/Sidekick.Wpf/bin/publish/Application Files","../src/Sidekick.Wpf/bin/publish/Sidekick.application" -Destination . -Recurse
# Stage and commit.
git add -A
git commit -m "Update to v$version"
git push
} finally {
Pop-Location
}