navidrome/plugins/testdata
Deluan Quintão a2de8e61ef
ci: run the plugins test suite in parallel processes (#6051)
* test(plugins): make the suite safe to run in parallel processes

Two things broke when the suite ran across several Ginkgo processes.

buildTestPlugins ran in every process, so N copies of make raced in the same
directory. The packaging rule made that worse by staging every plugin through
one shared plugin.wasm, so concurrent targets clobbered each other and left
orphaned temp files behind. That also ruled out make -j.

Stage each package under its own per-target directory, and move the build into
SynchronizedBeforeSuite so process 1 does it once while the others wait.

* ci: run the plugins suite in parallel processes

With the compilation cache warm the suite is bound by spec execution, which
splits cleanly across processes. Run it as its own step with the ginkgo CLI,
already declared as a tool in go.mod, and drop the package from the main go
test invocation so it is not run twice.

Locally, with -race: 69s to 19s warm, and 256s to 96s cold.

* ci: give the plugins suite its own job so it runs concurrently

Running it as a second step in the go job serialised it against the other 90
packages, which cancelled out the parallel win: the job went from 5m41s to
only 5m29s even though the suite itself dropped from ~175s to 82s.

Move it to its own job so the two run at the same time. The WASM compilation
cache moves with it, since the go job no longer runs the suite.
2026-08-30 16:57:40 -04:00
..
partial-metadata-agent feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
test-artwork feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
test-cache-plugin feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
test-config feat(plugins): add JSONForms-based plugin configuration UI (#4911) 2026-01-19 20:51:00 -05:00
test-kvstore feat(plugins): add TTL support, batch operations, and hardening to kvstore (#5127) 2026-02-28 23:12:17 -05:00
test-library fix(plugins): confine plugin filesystem mounts to their root (#5881) 2026-08-02 12:27:08 -04:00
test-lyrics refactor(lyrics): single ParseLyrics entry point + all-format plugin lyrics (#5632) 2026-06-19 18:25:35 -04:00
test-matcher feat(plugins): expose the song Matcher as a host service (#5643) 2026-07-01 11:19:15 -04:00
test-metadata-agent feat(plugins): share plugin DTOs via a types package (#5655) 2026-06-29 21:20:33 -04:00
test-scheduler feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
test-scrobble-retriever feat(plugins): add scrobbles access to PDK (#5795) 2026-08-08 22:13:29 -04:00
test-scrobbler feat(plugins): add PlaybackReport to scrobbler capability (#5452) 2026-05-02 16:14:53 -04:00
test-sonic-similarity feat(plugins): share plugin DTOs via a types package (#5655) 2026-06-29 21:20:33 -04:00
test-storage-plugin feat(plugins): implement plugin specific storage (#5839) 2026-08-03 14:23:42 -04:00
test-subsonicapi-plugin feat(plugins): add SubsonicAPI CallRaw, with support for raw=true binary response for host functions (#4982) 2026-02-04 15:48:08 -05:00
test-taskqueue feat(plugins): add TaskQueue host service for persistent background task queues (#5116) 2026-03-03 13:48:49 -05:00
test-users feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
test-websocket feat(plugins): change websockets Data field type to []byte for binary support 2026-03-02 16:38:00 -05:00
Makefile ci: run the plugins test suite in parallel processes (#6051) 2026-08-30 16:57:40 -04:00
test-storage-plugin-2 feat(plugins): implement plugin specific storage (#5839) 2026-08-03 14:23:42 -04:00