From 9c3cc8d4be66e30520a8e6ff2985548caf3a156b Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 5 Aug 2026 16:31:32 +0200 Subject: [PATCH] Enhance Installer --- .gitea/workflows/deploy.yaml | 56 ++++++++++++++++++++++++++ .gitea/workflows/test.yaml | 25 ++++++++++++ Installer/Files/README.txt | 8 +++- Installer/Files/config.ini | 3 ++ Installer/Folders.wxs | 10 ++++- Installer/Installer.wixproj | 17 ++++---- Installer/MainComponents.wxs | 33 +++++++-------- Installer/Package.wxs | 15 ++++--- Installer/ShortcutComponents.wxs | 8 ++-- PamhagenSysCtrl/PamhagenSysCtrl.csproj | 4 +- 10 files changed, 134 insertions(+), 45 deletions(-) create mode 100644 .gitea/workflows/deploy.yaml create mode 100644 .gitea/workflows/test.yaml create mode 100644 Installer/Files/config.ini diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..846d7b3 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,56 @@ +name: Deploy +on: + push: + tags: ["v[0-9]+.[0-9]+.[0-9]+"] +jobs: + deploy: + name: Build and Deploy + runs-on: windows-latest + permissions: + contents: write + steps: + - name: Set APP_VERSION variable from tag + shell: powershell + run: | + $APP_VERSION = $env:GITHUB_REF -replace '^refs/tags/v', '' + Add-Content -Path $env:GITHUB_ENV -Value "APP_VERSION=$APP_VERSION" + - name: Checkout repository + uses: actions/checkout@v4 + - name: Check version in project + shell: powershell + run: | + Select-String PamhagenSysCtrl/PamhagenSysCtrl.csproj -Pattern "" + $res = Select-String PamhagenSysCtrl/PamhagenSysCtrl.csproj -Pattern "${{ env.APP_VERSION }}" + if ($res -eq $null) { + exit 1 + } + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.1 + - name: Setup NuGet + uses: nuget/setup-nuget@v1 + - name: Restore NuGet packages + shell: powershell + run: $(& nuget restore PamhagenSysCtrl.sln; $a=$lastexitcode) | findstr x*; exit $a + - name: Build Installer + shell: powershell + run: $(& msbuild -verbosity:quiet Installer/Installer.wixproj -property:Configuration=Release -property:Platform=x64; $a=$lastexitcode) | findstr x*; exit $a + - name: Rename artifact + shell: powershell + run: Move-Item Installer/bin/x64/Release/PamhagenSysCtrl.msi Installer/bin/x64/Release/PamhagenSysCtrl-${{ env.APP_VERSION }}.msi + - name: Create release + uses: akkuman/gitea-release-action@v1 + with: + name: Anlagensteuerung Pamhagen ${{ env.APP_VERSION }} + body: "**[Changelog](src/branch/main/CHANGELOG.md#v${{ env.APP_VERSION }})**" + files: |- + Installer/bin/x64/Release/PamhagenSysCtrl-${{ env.APP_VERSION }}.msi + - name: Upload to website + shell: powershell + run: | + $content = [System.IO.File]::ReadAllBytes("Installer/bin/x64/Release/PamhagenSysCtrl-${{ env.APP_VERSION }}.msi") + Invoke-WebRequest ` + -Uri "https://elwig.at/files/PamhagenSysCtrl-${{ env.APP_VERSION }}.msi" ` + -Method PUT ` + -Body $content ` + -Headers @{ Authorization = "${{ secrets.API_AUTHORIZATION }}" } ` + -ContentType "application/octet-stream" diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml new file mode 100644 index 0000000..22b564a --- /dev/null +++ b/.gitea/workflows/test.yaml @@ -0,0 +1,25 @@ +name: Test +on: + push: + branches: ["**"] + paths: ["PamhagenSysCtrl/**", ".gitea/workflows/test.yaml"] +jobs: + test: + name: Run tests + runs-on: windows-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Check for Byte order marks + shell: powershell + run: | + $pattern = [char]::ConvertFromUtf32(0xFEFF) + $files = git grep -IEl "^$pattern" + if ( $lastexitcode -ne 1 ) { + echo "Files with BOM found:" + echo $files + exit 1 + } else { + echo "No files with BOM found" + exit 0 + } diff --git a/Installer/Files/README.txt b/Installer/Files/README.txt index 0f08fde..c222899 100644 --- a/Installer/Files/README.txt +++ b/Installer/Files/README.txt @@ -3,8 +3,12 @@ Pamhagen ======== Source code -C:\Program Files\Pamhagen\src\PamhagenSysCtrl-source.zip +C:\Program Files\Anlagensteuerung Pamhagen\src\pamhagen-sysctrl.zip https://git.necronda.net/winzer/pamhagen-sysctrl Installation folder -C:\Program Files\Pamhagen\ +C:\Program Files\Anlagensteuerung Pamhagen\ + +Data and configuration folder +C:\ProgramData\Anlagensteuerung Pamhagen\ +- config.ini : main configuration file diff --git a/Installer/Files/config.ini b/Installer/Files/config.ini new file mode 100644 index 0000000..e66b0a9 --- /dev/null +++ b/Installer/Files/config.ini @@ -0,0 +1,3 @@ + +[plc] +port = COM1 diff --git a/Installer/Folders.wxs b/Installer/Folders.wxs index a80da49..1d7bdea 100644 --- a/Installer/Folders.wxs +++ b/Installer/Folders.wxs @@ -1,16 +1,24 @@ + - + + + + + + + + diff --git a/Installer/Installer.wixproj b/Installer/Installer.wixproj index 1651b11..e2b155f 100644 --- a/Installer/Installer.wixproj +++ b/Installer/Installer.wixproj @@ -8,10 +8,7 @@ false $(MSBuildProjectDirectory)\..\PamhagenSysCtrl\bin\Publish - - + @@ -23,7 +20,6 @@ ]]> - @@ -34,13 +30,14 @@ ProductVersion=$(ProductVersion);BuildPath=$(PublishDirectory) - - + - - + + + + + diff --git a/Installer/MainComponents.wxs b/Installer/MainComponents.wxs index 45e6b3d..8616b90 100644 --- a/Installer/MainComponents.wxs +++ b/Installer/MainComponents.wxs @@ -1,25 +1,22 @@ - - + + - - - - - - - - - - - - + + + - + + + + + + + + + + diff --git a/Installer/Package.wxs b/Installer/Package.wxs index 14cdfdb..c027b09 100644 --- a/Installer/Package.wxs +++ b/Installer/Package.wxs @@ -1,18 +1,17 @@ - - - + + - - - + + + diff --git a/Installer/ShortcutComponents.wxs b/Installer/ShortcutComponents.wxs index 673d44f..4ca41df 100644 --- a/Installer/ShortcutComponents.wxs +++ b/Installer/ShortcutComponents.wxs @@ -8,8 +8,8 @@ + Target="[InstallFolder]PamhagenSysCtrl.exe" + WorkingDirectory="InstallFolder" /> + Target="[InstallFolder]PamhagenSysCtrl.exe" + WorkingDirectory="InstallFolder" /> WinExe net10.0-windows - 1.0.0 - Pamhagen + 0.0.1 + Anlagensteuerung Pamhagen de-AT enable enable