Skip to content

Commit 3313484

Browse files
committed
1.0.0
0 parents  commit 3313484

43 files changed

Lines changed: 3130 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
name: Lizerium Localization Toolkit Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
env:
12+
DOTNET_VERSION: 8.0.x
13+
CONFIGURATION: Release
14+
RID: win-x64
15+
ARTIFACT_PREFIX: Lizerium.Localization.Toolkit
16+
17+
jobs:
18+
release:
19+
name: Build release assets
20+
runs-on: windows-latest
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Setup .NET
27+
uses: actions/setup-dotnet@v4
28+
with:
29+
dotnet-version: ${{ env.DOTNET_VERSION }}
30+
31+
- name: Resolve package version
32+
shell: pwsh
33+
run: |
34+
$version = "${{ github.ref_name }}"
35+
if ($version.StartsWith("v")) {
36+
$version = $version.Substring(1)
37+
}
38+
39+
"PACKAGE_VERSION=$version" >> $env:GITHUB_ENV
40+
41+
- name: Restore
42+
run: dotnet restore Lizerium.Localization.Toolkit.sln
43+
44+
- name: Build Core
45+
run: dotnet build src/Lizerium.Localization.Core/Lizerium.Localization.Core.csproj -c ${{ env.CONFIGURATION }} --no-restore
46+
47+
- name: Build Generator
48+
run: dotnet build src/Lizerium.Localization.Generator/Lizerium.Localization.Generator.csproj -c ${{ env.CONFIGURATION }} --no-restore
49+
50+
- name: Build Analyzer
51+
run: dotnet build src/Lizerium.Localization.Analyzer/Lizerium.Localization.Analyzer.csproj -c ${{ env.CONFIGURATION }} --no-restore
52+
53+
- name: Build GUI
54+
run: dotnet build src/Lizerium.Localization.GUI/Lizerium.Localization.GUI.csproj -c ${{ env.CONFIGURATION }} --no-restore
55+
56+
- name: Build Sample
57+
run: dotnet build samples/WpfSampleApp/WpfSampleApp.csproj -c ${{ env.CONFIGURATION }} --no-restore
58+
59+
- name: Restore publish projects
60+
run: |
61+
dotnet restore src/Lizerium.Localization.GUI/Lizerium.Localization.GUI.csproj -r ${{ env.RID }}
62+
dotnet restore samples/WpfSampleApp/WpfSampleApp.csproj -r ${{ env.RID }}
63+
64+
- name: Pack NuGet packages
65+
shell: pwsh
66+
run: |
67+
New-Item -ItemType Directory -Force artifacts/nuget | Out-Null
68+
69+
dotnet pack src/Lizerium.Localization.Core/Lizerium.Localization.Core.csproj `
70+
-c $env:CONFIGURATION `
71+
-p:Version=$env:PACKAGE_VERSION `
72+
-p:PackageVersion=$env:PACKAGE_VERSION `
73+
-o artifacts/nuget `
74+
--no-restore
75+
76+
dotnet pack src/Lizerium.Localization.Generator/Lizerium.Localization.Generator.csproj `
77+
-c $env:CONFIGURATION `
78+
-p:Version=$env:PACKAGE_VERSION `
79+
-p:PackageVersion=$env:PACKAGE_VERSION `
80+
-o artifacts/nuget `
81+
--no-restore
82+
83+
dotnet pack src/Lizerium.Localization.Analyzer/Lizerium.Localization.Analyzer.csproj `
84+
-c $env:CONFIGURATION `
85+
-p:Version=$env:PACKAGE_VERSION `
86+
-p:PackageVersion=$env:PACKAGE_VERSION `
87+
-o artifacts/nuget `
88+
--no-restore
89+
90+
dotnet pack src/Lizerium.Localization.Toolkit/Lizerium.Localization.Toolkit.csproj `
91+
-c $env:CONFIGURATION `
92+
-p:Version=$env:PACKAGE_VERSION `
93+
-p:PackageVersion=$env:PACKAGE_VERSION `
94+
-o artifacts/nuget `
95+
--no-restore
96+
97+
dotnet pack src/Lizerium.Localization.GUI/Lizerium.Localization.GUI.csproj `
98+
-c $env:CONFIGURATION `
99+
-p:Version=$env:PACKAGE_VERSION `
100+
-p:PackageVersion=$env:PACKAGE_VERSION `
101+
-o artifacts/nuget `
102+
--no-restore
103+
104+
- name: Publish GUI
105+
run: >
106+
dotnet publish src/Lizerium.Localization.GUI/Lizerium.Localization.GUI.csproj
107+
-c ${{ env.CONFIGURATION }}
108+
-r ${{ env.RID }}
109+
--self-contained true
110+
--no-restore
111+
-p:PublishSingleFile=true
112+
-p:IncludeNativeLibrariesForSelfExtract=true
113+
-p:DebugType=None
114+
-p:DebugSymbols=false
115+
-o artifacts/publish/gui/${{ env.RID }}
116+
117+
- name: Publish Sample
118+
run: >
119+
dotnet publish samples/WpfSampleApp/WpfSampleApp.csproj
120+
-c ${{ env.CONFIGURATION }}
121+
-r ${{ env.RID }}
122+
--self-contained true
123+
--no-restore
124+
-p:PublishSingleFile=true
125+
-p:IncludeNativeLibrariesForSelfExtract=true
126+
-p:DebugType=None
127+
-p:DebugSymbols=false
128+
-o artifacts/publish/sample/${{ env.RID }}
129+
130+
- name: Pack release assets
131+
shell: pwsh
132+
run: |
133+
$tag = "${{ github.ref_name }}"
134+
$prefix = "${{ env.ARTIFACT_PREFIX }}"
135+
New-Item -ItemType Directory -Force artifacts/release | Out-Null
136+
137+
Compress-Archive `
138+
-Path artifacts/publish/gui/${{ env.RID }}/* `
139+
-DestinationPath "artifacts/release/$prefix-GUI-$tag-${{ env.RID }}.zip" `
140+
-Force
141+
142+
Compress-Archive `
143+
-Path artifacts/publish/sample/${{ env.RID }}/* `
144+
-DestinationPath "artifacts/release/$prefix-Sample-$tag-${{ env.RID }}.zip" `
145+
-Force
146+
147+
Compress-Archive `
148+
-Path artifacts/nuget/*.nupkg `
149+
-DestinationPath "artifacts/release/$prefix-NuGet-$tag.zip" `
150+
-Force
151+
152+
Compress-Archive `
153+
-Path samples/WpfSampleApp/* `
154+
-DestinationPath "artifacts/release/$prefix-SampleSource-$tag.zip" `
155+
-Force
156+
157+
Get-ChildItem artifacts/release -File |
158+
Get-FileHash -Algorithm SHA256 |
159+
ForEach-Object { "$($_.Hash) $(Split-Path $_.Path -Leaf)" } |
160+
Set-Content "artifacts/release/SHA256SUMS.txt" -Encoding UTF8
161+
162+
$releaseNotes = @'
163+
## Lizerium.Localization.Toolkit __TAG__
164+
165+
A localization workflow for .NET/WPF projects based on `.resx` files.
166+
167+
Рабочий набор локализации для .NET/WPF проектов на основе `.resx` файлов.
168+
169+
---
170+
171+
### Included in this release
172+
173+
- NuGet packages for Toolkit, Core, Generator, Analyzer, and GUI
174+
- Windows x64 standalone GUI editor
175+
- Windows x64 published WPF sample application
176+
- Sample project source archive
177+
- SHA-256 checksums
178+
179+
### Что входит в релиз
180+
181+
- NuGet-пакеты для Toolkit, Core, Generator, Analyzer и GUI
182+
- Самостоятельная Windows x64 сборка GUI-редактора
183+
- Опубликованная Windows x64 сборка WPF sample-приложения
184+
- Архив исходников sample-проекта
185+
- SHA-256 checksums
186+
187+
---
188+
189+
### Install package
190+
191+
```powershell
192+
dotnet nuget add source .\packages -n LizeriumLocal
193+
dotnet add path\to\YourProject.csproj package Lizerium.Localization.Toolkit --version __VERSION__ --source .\packages
194+
```
195+
196+
### Установка пакета
197+
198+
```powershell
199+
dotnet nuget add source .\packages -n LizeriumLocal
200+
dotnet add path\to\YourProject.csproj package Lizerium.Localization.Toolkit --version __VERSION__ --source .\packages
201+
```
202+
203+
---
204+
205+
### GUI usage
206+
207+
Download the GUI archive, extract it, and run:
208+
209+
```powershell
210+
.\Lizerium.Localization.GUI.exe
211+
```
212+
213+
The editor can be registered in Visual Studio through `Tools -> External Tools...` with `$(ProjectDir)` as the argument.
214+
215+
### Использование GUI
216+
217+
Скачай архив GUI, распакуй его и запусти:
218+
219+
```powershell
220+
.\Lizerium.Localization.GUI.exe
221+
```
222+
223+
Редактор можно добавить в Visual Studio через `Tools -> External Tools...`, передав `$(ProjectDir)` как аргумент.
224+
'@
225+
226+
$releaseNotes = $releaseNotes.Replace("__TAG__", $tag).Replace("__VERSION__", $env:PACKAGE_VERSION)
227+
$releaseNotes | Set-Content "artifacts/release/RELEASE_NOTES.md" -Encoding UTF8
228+
229+
- name: Upload Release
230+
uses: softprops/action-gh-release@v2
231+
with:
232+
generate_release_notes: true
233+
body_path: artifacts/release/RELEASE_NOTES.md
234+
files: |
235+
artifacts/release/*.zip
236+
artifacts/release/SHA256SUMS.txt

0 commit comments

Comments
 (0)