ci: run the pipeline as one step again
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed

Separate steps do not share the SDK package cache, so the build step could not
see what the restore step downloaded.

- restore, build and test in a single container
- install fontconfig after the build so a mirror failure cannot be read as a build failure
- raise the memory limit to 8Gi
This commit is contained in:
2026-09-12 00:27:48 +10:00
parent 43b4f143eb
commit b6f7732f13
+18 -45
View File
@@ -2,55 +2,28 @@ when:
- event: pull_request
- event: push
variables:
# global.json pins the .NET 10 SDK (10.0.0, rollForward latestMinor).
- &sdk_image mcr.microsoft.com/dotnet/sdk:10.0
# Steps run in separate containers, so the package cache lives in the shared
# workspace instead of the per-container home directory.
- &dotnet_env
NUGET_PACKAGES: ${CI_WORKSPACE}/.nuget
DOTNET_CLI_TELEMETRY_OPTOUT: "1"
DOTNET_NOLOGO: "1"
- &k8s_resources
kubernetes:
serviceAccountName: jellyfin-ha-src
resources:
requests:
memory: 2Gi
cpu: 2
limits:
memory: 8Gi
cpu: 4
steps:
- name: restore
image: *sdk_image
environment: *dotnet_env
# Restore, build and test the full solution. global.json pins the .NET 10
# SDK (10.0.0, rollForward latestMinor), so build on the 10.0 SDK image.
- name: build-test
image: mcr.microsoft.com/dotnet/sdk:10.0
environment:
DOTNET_CLI_TELEMETRY_OPTOUT: "1"
DOTNET_NOLOGO: "1"
commands:
- dotnet --info
- dotnet restore Jellyfin.sln
backend_options: *k8s_resources
- name: build
image: *sdk_image
environment: *dotnet_env
commands:
- dotnet build Jellyfin.sln -c Release --no-restore
backend_options: *k8s_resources
# libSkiaSharp needs fontconfig to load, and the SDK image does not ship it.
# Kept as its own step so a package-mirror problem is not reported as a test failure.
- name: sysdeps
image: *sdk_image
commands:
- apt-get update
- apt-get install -y --no-install-recommends libfontconfig1
backend_options: *k8s_resources
- name: test
image: *sdk_image
environment: *dotnet_env
commands:
# libSkiaSharp needs fontconfig to load, and the SDK image does not ship it.
- apt-get update && apt-get install -y --no-install-recommends libfontconfig1
- dotnet test Jellyfin.sln -c Release --no-build --verbosity minimal --filter "Category!=RequiresDocker&FullyQualifiedName!~Integration"
backend_options: *k8s_resources
backend_options:
kubernetes:
serviceAccountName: jellyfin-ha-src
resources:
requests:
memory: 2Gi
cpu: 2
limits:
memory: 8Gi
cpu: 4