9 Commits

Author SHA1 Message Date
benvin 248027aaea Merge pull request 'ci: use CA-baked plugin-docker-buildx image for artifactapi push' (#6) from benvin/jellyfin-buildx-plugin-image into main
ci/woodpecker/tag/docker Pipeline was successful
Reviewed-on: #6
2026-08-15 18:20:05 +10:00
unkin-agent 0020ee2a58 ci: use CA-baked plugin-docker-buildx image for artifactapi push
ci/woodpecker/pr/build Pipeline was successful
Point the release docker step at the custom
artifactapi.k8s.syd1.au.unkin.net/docker-internal/plugin-docker-buildx
image, which bakes artifactapi's internal Vault CA into
/etc/docker/certs.d/<registry>/ca.crt.

- Swap the docker step image from upstream woodpeckerci/plugin-docker-buildx
  to the CA-baked custom image.
- Drop the separate ca-trust step (and its almalinux9-base dependency) that
  staged the CA into the workspace.
- Repoint buildkit_config ca= at the in-image baked CA path so the buildx
  docker-container builder still hands the CA to buildkitd for the push.
2026-08-15 18:06:11 +10:00
benvin b1470f3158 Merge pull request 'ci: trust artifactapi internal CA when pushing docker-internal' (#5) from benvin/jellyfin-buildkit-ca into main
ci/woodpecker/tag/docker Pipeline failed
Reviewed-on: #5
2026-08-15 16:42:06 +10:00
unkin-agent ec04b35b39 ci: trust artifactapi internal CA when pushing docker-internal
ci/woodpecker/pr/build Pipeline was successful
The v0.1.0 release pipeline built the runtime image fine but failed the
push to artifactapi.k8s.syd1.au.unkin.net/docker-internal with a TLS
x509 unknown-authority error: buildkit did not trust artifactapi's
Vault-signed cert.

Stage the internal CA into the shared workspace via the almalinux9-base
image (already trusts the unkin CA; same image the RPM release pipelines
use to reach artifactapi over HTTPS) and point the docker-buildx plugin
at it through buildkit_config. buildx copies the referenced CA into the
buildkitd container at builder-create time, so the push handshake now
verifies. No credentials needed: anonymous push to docker-internal is
allowed for trusted clients.
2026-08-15 16:34:44 +10:00
benvin a369c49457 Merge pull request 'build: source release image from fork main (scan-leader)' (#4) from benvin/upstream-ref-scanleader into main
ci/woodpecker/tag/docker Pipeline failed
Reviewed-on: #4
2026-08-12 00:30:32 +10:00
unkinben 8738315c52 build: bump UPSTREAM_REF to fork main with scan-leader
ci/woodpecker/pr/build Pipeline was successful
2026-08-11 22:03:13 +10:00
benvin ac507021f3 Merge pull request 'build: container build from the unkin jellyfin-ha-src fork' (#3) from benvin/jellyfin-ha-build into main
Reviewed-on: #3
2026-08-11 21:13:46 +10:00
unkinben 26e57c8655 ci: pin .NET SDK image to 9.0 to match global.json
ci/woodpecker/pr/build Pipeline was successful
The pinned jellyfin-ha-src fork sets global.json sdk 9.0.0 (rollForward
latestMinor), so the publish steps in build.yaml and docker.yaml must run
on the .NET 9 SDK. They referenced sdk:10.0, which fails the pinned build.
Repoint both publish steps to mcr.microsoft.com/dotnet/sdk:9.0.
2026-08-11 20:41:43 +10:00
unkinben 9f8d9014d3 build: source from the unkin jellyfin-ha-src fork
Why:
- The build should pull from our own source fork so local HA patches can be
  carried and pinned, rather than cloning the upstream GitHub tree directly.

How:
- Point the clone URL in the Makefile and both Woodpecker pipelines at
  https://git.unkin.net/unkin/jellyfin-ha-src.git.
- Keep UPSTREAM_REF at d4f9c12c22d3a640f3b0a3622b23b8cd01d044ad, which is the
  seeded fork main, so the produced image is byte-identical for now; the
  feature bump is a later change.
2026-08-11 07:25:03 +10:00
4 changed files with 15 additions and 7 deletions
+2 -2
View File
@@ -5,11 +5,11 @@ steps:
# Clone the pinned upstream jellyfin-ha source and publish the .NET server
# into ./publish-output (consumed by Dockerfile.runtime).
- name: publish
image: mcr.microsoft.com/dotnet/sdk:10.0
image: mcr.microsoft.com/dotnet/sdk:9.0
commands:
- |
REF=$$(cat UPSTREAM_REF)
git clone https://github.com/ZoltyMat/jellyfin-ha.git src
git clone https://git.unkin.net/unkin/jellyfin-ha-src.git src
git -C src checkout "$$REF"
dotnet publish src/Jellyfin.Server/Jellyfin.Server.csproj \
-c Release -r linux-x64 --self-contained false -o ./publish-output
+11 -3
View File
@@ -5,11 +5,11 @@ when:
steps:
# Same publish step as the PR pipeline: clone pinned upstream + dotnet publish.
- name: publish
image: mcr.microsoft.com/dotnet/sdk:10.0
image: mcr.microsoft.com/dotnet/sdk:9.0
commands:
- |
REF=$$(cat UPSTREAM_REF)
git clone https://github.com/ZoltyMat/jellyfin-ha.git src
git clone https://git.unkin.net/unkin/jellyfin-ha-src.git src
git -C src checkout "$$REF"
dotnet publish src/Jellyfin.Server/Jellyfin.Server.csproj \
-c Release -r linux-x64 --self-contained false -o ./publish-output
@@ -25,12 +25,20 @@ steps:
cpu: 4
# Build the runtime image and push it to the artifactapi local docker registry.
# The plugin image bakes artifactapi's internal (Vault) CA at
# /etc/docker/certs.d/<registry>/ca.crt; buildkit_config points the buildx
# docker-container builder at that in-image CA. buildkitd runs in its own
# container and performs the push, so it needs the CA via --config even though
# the plugin image already trusts it — buildx copies the referenced file in.
- name: docker
image: woodpeckerci/plugin-docker-buildx
image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/plugin-docker-buildx:latest
settings:
registry: artifactapi.k8s.syd1.au.unkin.net
repo: artifactapi.k8s.syd1.au.unkin.net/docker-internal/jellyfin-ha
dockerfile: Dockerfile.runtime
buildkit_config: |
[registry."artifactapi.k8s.syd1.au.unkin.net"]
ca = ["/etc/docker/certs.d/artifactapi.k8s.syd1.au.unkin.net/ca.crt"]
tags:
- ${CI_COMMIT_TAG}
- latest
+1 -1
View File
@@ -8,7 +8,7 @@ REF := $(shell cat UPSTREAM_REF)
# ./publish-output (consumed by Dockerfile.runtime). Mirrors CI.
publish:
rm -rf src publish-output
git clone https://github.com/ZoltyMat/jellyfin-ha.git src
git clone https://git.unkin.net/unkin/jellyfin-ha-src.git src
git -C src checkout $(REF)
dotnet publish src/Jellyfin.Server/Jellyfin.Server.csproj \
-c Release -r linux-x64 --self-contained false -o ./publish-output
+1 -1
View File
@@ -1 +1 @@
d4f9c12c22d3a640f3b0a3622b23b8cd01d044ad
2e1e445e470c2f2c1520f66678a73faa226c2058