Switch to MinVer, add CI/CD, unify thumbnail options
- Add .gitlab-ci.yml for Windows CI/CD: build, publish, and GitLab Release with artifact upload - Replace GitVersion.MsBuild with MinVer for versioning; update all versioning logic in .csproj - Remove GitVersion CLI fallback for Visual Studio builds - Update post-publish renaming to use MinVer's Version property - Replace multiple thumbnail text checkboxes with a single ComboBox selector in MainWindow.xaml - Change default UI startup: prefer WPF MainWindow, fallback to WinForms MainForm
This commit is contained in:
parent
d13ec8abdf
commit
da9d9875b0
4 changed files with 94 additions and 45 deletions
55
.gitlab-ci.yml
Normal file
55
.gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
stages:
|
||||
- build
|
||||
- publish
|
||||
|
||||
variables:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: "1"
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
|
||||
BUILD_CONFIG: "Release"
|
||||
|
||||
# Build job for Windows runner (shell executor). Remove 'image' so the runner uses the host environment.
|
||||
build_windows:
|
||||
stage: build
|
||||
tags:
|
||||
- windows
|
||||
script:
|
||||
- dotnet --info
|
||||
- dotnet restore
|
||||
- dotnet build "imagecatalog\ImageCatalog 2.csproj" -c $BUILD_CONFIG -v minimal
|
||||
artifacts:
|
||||
paths:
|
||||
- "**/bin/$BUILD_CONFIG/net10.0-windows/**"
|
||||
expire_in: 1 hour
|
||||
|
||||
# Publish and create GitLab Release when building a tag. This job expects a Windows runner with PowerShell and curl available.
|
||||
publish_release:
|
||||
stage: publish
|
||||
tags:
|
||||
- windows
|
||||
needs:
|
||||
- build_windows
|
||||
script:
|
||||
# Publish the app
|
||||
- dotnet publish "imagecatalog\ImageCatalog 2.csproj" -c $BUILD_CONFIG -r win-x64 --self-contained false -o publish
|
||||
- echo "Published to $(pwd)\\publish"
|
||||
# Find first file in publish folder
|
||||
- $file = Get-ChildItem -Path publish -File | Select-Object -First 1; Write-Host "Uploading $($file.FullName)"
|
||||
# Upload to GitLab project uploads API to get a public URL for the artifact
|
||||
- $uploadUrl = "$env:CI_API_V4_URL/projects/$env:CI_PROJECT_ID/uploads"
|
||||
- $formData = "file=@$($file.FullName)"
|
||||
- $uploadResp = curl --silent --show-error --header "JOB-TOKEN:$env:CI_JOB_TOKEN" --form $formData $uploadUrl
|
||||
- $uploadJson = $uploadResp | ConvertFrom-Json
|
||||
- $assetUrl = "$env:CI_SERVER_URL$($uploadJson.url)"
|
||||
- 'Write-Host "Uploaded asset url: $assetUrl"'
|
||||
# Create the release using uploads URL
|
||||
- $body = @{ name = $env:CI_COMMIT_TAG; tag_name = $env:CI_COMMIT_TAG; description = "Automated release from CI"; assets = @{ links = @(@{ name = "$($file.Name)"; url = $assetUrl }) } } | ConvertTo-Json -Depth 10
|
||||
- Invoke-RestMethod -Method Post -Uri "$env:CI_API_V4_URL/projects/$env:CI_PROJECT_ID/releases" -Headers @{ "JOB-TOKEN" = $env:CI_JOB_TOKEN } -Body $body -ContentType "application/json"
|
||||
artifacts:
|
||||
paths:
|
||||
- publish/*
|
||||
expire_in: 1 day
|
||||
only:
|
||||
- tags
|
||||
|
||||
# Notes for runner setup: Ensure a GitLab Windows runner with tag 'windows' is registered and has .NET 10 SDK installed.
|
||||
# Use the shell executor on the Windows machine so the job runs in the host PowerShell environment
|
||||
Loading…
Add table
Add a link
Reference in a new issue