diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..17461dd5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,83 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + release: + runs-on: windows-latest + name: Build and Release ${{ github.ref_name }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for GitVersion to compute version from tags + + - name: Install .NET Core + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 10.0.x + + - name: Install InnoSetup + run: choco install innosetup --no-progress -y + + - name: Build and Package + run: ./build.ps1 --target Clean Pack --configuration Release + + - name: Install nuget-license tool + run: dotnet tool install --global nuget-license + + - name: Update usedComponents.json + shell: pwsh + run: | + # Generate updated component list (packages already restored by build) + $output = nuget-license -i src/LogExpert.sln -o JsonPretty + Set-Content -Path "src/Solution Items/usedComponents.json" -Value $output -Encoding UTF8 + + - name: Commit generated files to Development + shell: pwsh + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Save generated files before switching branches (checkout would overwrite them) + $tempComponents = [System.IO.Path]::GetTempFileName() + $tempHashes = [System.IO.Path]::GetTempFileName() + Copy-Item "src/Solution Items/usedComponents.json" $tempComponents + Copy-Item "src/PluginRegistry/PluginHashGenerator.Generated.cs" $tempHashes + + # Switch to Development and apply both updates + git fetch origin Development + git checkout Development + Copy-Item $tempComponents "src/Solution Items/usedComponents.json" + Copy-Item $tempHashes "src/PluginRegistry/PluginHashGenerator.Generated.cs" + + git add "src/Solution Items/usedComponents.json" + git add "src/PluginRegistry/PluginHashGenerator.Generated.cs" + git diff --staged --quiet + if ($LASTEXITCODE -ne 0) { + git commit -m "chore: update plugin hashes and usedComponents.json for ${{ github.ref_name }} [skip ci]" + git push origin Development + } else { + Write-Host "No changes to commit" + } + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + files: | + bin/LogExpert-Setup-*.exe + bin/LogExpert.*.zip + bin/LogExpert.ColumnizerLib.*.nupkg + bin/SftpFileSystem.x64.*.zip + bin/SftpFileSystem.x86.*.zip + bin/chocolatey/logexpert.*.nupkg + generate_release_notes: true + draft: false + prerelease: ${{ contains(github.ref_name, '-') }} diff --git a/src/PluginRegistry/PluginHashGenerator.Generated.cs b/src/PluginRegistry/PluginHashGenerator.Generated.cs index 1684a0ec..21fff2a6 100644 --- a/src/PluginRegistry/PluginHashGenerator.Generated.cs +++ b/src/PluginRegistry/PluginHashGenerator.Generated.cs @@ -10,7 +10,7 @@ public static partial class PluginValidator { /// /// Gets pre-calculated SHA256 hashes for built-in plugins. - /// Generated: 2026-06-01 14:21:26 UTC + /// Generated: 2026-06-03 11:38:48 UTC /// Configuration: Release /// Plugin count: 21 /// @@ -18,27 +18,27 @@ public static Dictionary GetBuiltInPluginHashes() { return new Dictionary(StringComparer.OrdinalIgnoreCase) { - ["AutoColumnizer.dll"] = "DC7D1EF56AFB8A47739707CC183A1F93575B795FCF677CAF2F9563C7FD813F1F", + ["AutoColumnizer.dll"] = "B0965F04F73C61B0BC29208E9E652A9DB208E2E98C277F324C5E9FB51C2E8BD5", ["BouncyCastle.Cryptography.dll"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6", ["BouncyCastle.Cryptography.dll (x86)"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6", - ["CsvColumnizer.dll"] = "5814B514ABBC966B259268BA4B9B1E8E54B519160FD107D20894AA1D0BACC5A5", - ["CsvColumnizer.dll (x86)"] = "5814B514ABBC966B259268BA4B9B1E8E54B519160FD107D20894AA1D0BACC5A5", - ["DefaultPlugins.dll"] = "70254CD15387236A799FE160F3A2021FEE60FE8F92A96979202ADB4A2C84FE6D", - ["FlashIconHighlighter.dll"] = "DBB3E6E8AD24B0A0C74ECADE6B6650BA7CF3A3A25BA2B6F60E2F6006605CCE76", - ["GlassfishColumnizer.dll"] = "9DE9E6F2C606046B0DDE3C368D7888E342050EA85331C0FE46AB05E147B7B830", - ["JsonColumnizer.dll"] = "30663E7C7DF7DC7FF4C299697EABA8A4B9F2616E0D90DDDD976B91C0EA6982E5", - ["JsonCompactColumnizer.dll"] = "7326622318DFBFA204E36787D8487113E2E3A76824B7C6264F446B80096D1251", - ["Log4jXmlColumnizer.dll"] = "AFD096C80934CFF8C8BBDFECC27C4530130A8961F0F92EFDB6503546513D6875", - ["LogExpert.Resources.dll"] = "44A4C12022FEBE9D0FEE88896F7C652A951FE82C2D07B785704288651EC71490", + ["CsvColumnizer.dll"] = "CEC990903F1BD94965E37726A6025D8501C18C9932D96B111FA3FB9CDF71FCF7", + ["CsvColumnizer.dll (x86)"] = "CEC990903F1BD94965E37726A6025D8501C18C9932D96B111FA3FB9CDF71FCF7", + ["DefaultPlugins.dll"] = "B0766FFD6AA499BE4A854013B280A5DFF490B989EDB7406468D266A1DF892EBE", + ["FlashIconHighlighter.dll"] = "456544EA8F97FF53DD2203F99A00A0F7A669F355C1A6E9B0A6F5F44A498B52CA", + ["GlassfishColumnizer.dll"] = "64021C14C36807716462B9E9AC2B7AD5514061D74F90D08074D0BBAFF74BE3CD", + ["JsonColumnizer.dll"] = "F1D9F58572FC6795FCB855EE70A7F0717C291BFA0623B8D49B5ADB3381DEFC4B", + ["JsonCompactColumnizer.dll"] = "4A9CC547B1F05C073D66216F0A05D416D316D4A784D3DC7993AE127F8A83D916", + ["Log4jXmlColumnizer.dll"] = "04FD914B7587A5BF29B3D0DF13B0F939D50C9C78A1C3988B25FC5E6CE40302A6", + ["LogExpert.Resources.dll"] = "DF7378CA858BC60D5A781331D8CC6B79CF1026075D20202E6E7A384805351889", ["Microsoft.Extensions.DependencyInjection.Abstractions.dll"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93", ["Microsoft.Extensions.DependencyInjection.Abstractions.dll (x86)"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93", ["Microsoft.Extensions.Logging.Abstractions.dll"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D", ["Microsoft.Extensions.Logging.Abstractions.dll (x86)"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D", - ["RegexColumnizer.dll"] = "F53554822DD21133040836668F04AA59D55A960B1C2988B50904F2A1B08DA084", - ["SftpFileSystem.dll"] = "BCA378ACA3F21BB396C49A81E1876FFB0E9B2FC33EEDDC361C46CE88305AACF1", - ["SftpFileSystem.dll (x86)"] = "6B1B3C33820B6AC5C7DEF41B7FE5AB96F8BE3F60DEEE26889A05BE34BBB73619", - ["SftpFileSystem.Resources.dll"] = "F5E023A76F1F5F19BCC4771C27932CE25A9207A5590AE8D0ED5EF371522B9861", - ["SftpFileSystem.Resources.dll (x86)"] = "F5E023A76F1F5F19BCC4771C27932CE25A9207A5590AE8D0ED5EF371522B9861", + ["RegexColumnizer.dll"] = "36EB2C8B04313A4FE068CB7F69C057EF441471D12E636797092C87A63FF021A0", + ["SftpFileSystem.dll"] = "166BAA0702A9C0913CDA6F6B529601911BF145FDE7BB74A37C6CF086CAADB63C", + ["SftpFileSystem.dll (x86)"] = "B0ECE111B2C74EFD52181D070A757B1ACC3005B6C714FD231FAC73B26EFE9A90", + ["SftpFileSystem.Resources.dll"] = "BD2280AC54C20AC563000128080A2C9B7C8B6E689353E319FB7AE5371225FEFA", + ["SftpFileSystem.Resources.dll (x86)"] = "BD2280AC54C20AC563000128080A2C9B7C8B6E689353E319FB7AE5371225FEFA", }; }