-
Notifications
You must be signed in to change notification settings - Fork 0
78 lines (66 loc) · 2.5 KB
/
Copy pathrelease.yml
File metadata and controls
78 lines (66 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
name: Release
on:
release:
types: [published]
permissions:
contents: write
jobs:
build-release-zip:
name: Build Windows ZIP
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Derive version from release tag
id: version
shell: pwsh
run: |
$tag = "${{ github.event.release.tag_name }}"
$version = $tag.TrimStart("v")
$assemblyVersion = ($version -split "-")[0]
"RELEASE_TAG=$tag" >> $env:GITHUB_ENV
"PACKAGE_VERSION=$version" >> $env:GITHUB_ENV
"ASSEMBLY_VERSION=$assemblyVersion" >> $env:GITHUB_ENV
"ZIP_NAME=FolderSyncr-$tag-win-x64.zip" >> $env:GITHUB_ENV
- name: Restore
run: dotnet restore .\FolderSyncr.slnx
- name: Publish WPF app
run: >
dotnet publish .\FolderSyncr\FolderSyncr.csproj
--configuration Release
--runtime win-x64
--self-contained true
--output .\artifacts\publish\FolderSyncr
/p:Version=${{ env.PACKAGE_VERSION }}
/p:AssemblyVersion=${{ env.ASSEMBLY_VERSION }}
/p:FileVersion=${{ env.ASSEMBLY_VERSION }}
/p:InformationalVersion=${{ env.PACKAGE_VERSION }}+${{ github.sha }}
/p:PublishSingleFile=true
/p:IncludeNativeLibrariesForSelfExtract=true
- name: Publish CLI runner
run: >
dotnet publish .\FolderSyncr.Cli\FolderSyncr.Cli.csproj
--configuration Release
--runtime win-x64
--self-contained true
--output .\artifacts\publish\FolderSyncr
/p:Version=${{ env.PACKAGE_VERSION }}
/p:AssemblyVersion=${{ env.ASSEMBLY_VERSION }}
/p:FileVersion=${{ env.ASSEMBLY_VERSION }}
/p:InformationalVersion=${{ env.PACKAGE_VERSION }}+${{ github.sha }}
/p:PublishSingleFile=true
/p:IncludeNativeLibrariesForSelfExtract=true
- name: Create ZIP
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path .\artifacts\release | Out-Null
Compress-Archive -Path .\artifacts\publish\FolderSyncr\* -DestinationPath ".\artifacts\release\$env:ZIP_NAME" -Force
- name: Attach ZIP to GitHub release
shell: pwsh
env:
GH_TOKEN: ${{ github.token }}
run: gh release upload "$env:RELEASE_TAG" ".\artifacts\release\$env:ZIP_NAME" --clobber