docker-build runs in parallel with all other jobs — no dependencies.
docker-publish gates on backend, unit-tests, frontend, and docker-build.
The publish step is a cache hit since docker-build already populated GHA cache.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Multi-stage Dockerfile using hotio/base:alpinevpn with s6-overlay.
Docker job runs after backend, unit-tests, and frontend pass.
Builds linux/amd64 and linux/arm64 images, pushes to GHCR on
non-PR events. Supports manual dispatch with optional version tag.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The event_handlers_should_be_unique test requires the Prowlarr app data
directory to exist. Upstream test.sh creates this directory before
running tests (mkdir -p for each platform). Added the same setup step.
The separate restore + build steps caused StyleCop analyzers to be
restored unconditionally, then EnableAnalyzers=false had no effect
since packages were already resolved. Using dotnet msbuild -restore
(matching upstream build.sh) passes the property during both restore
and build phases.
Replicates the upstream Azure Pipelines build patterns as GitHub Actions:
- Backend build across Linux, Windows, macOS with .NET 8.0
- Unit tests on all three platforms with NUnit test filtering
- Frontend build with yarn, ESLint, and Stylelint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>