The matrix build for published platforms is getting extremely large.
It's no longer efficient or productive to run the unit tests during that
job. Instead, a much smaller job is now run prior to the Build job for
running tests.
The non-root user and group were still being created in the Dockerfile,
which means that if the PUID or PGID were modified, those changes would
not be processed.
This change completely removes the `adduser` / `addgroup` commands and
instead the user spec is passed directly to `su-exec`.
There are only two cases we care about docker builds:
- On branches (not tags): To verify that we didn't break the docker
build.
- When a Github Release is published: To build & publish an official
docker image.
In the second case, the build should happen after the Github Release is
published, NOT when a tag is pushed.
Specify `RECYCLARR_APP_DATA` so that every command inherits and uses
that path for its application data. This behaves the same as if you had
specified the `--app-data` option for every invocation of Recyclarr.
Due to the failures related to symlinks in the repo directory that
happened when doing a full directory merge, the migration logic has been
simplified. It now only copies useful YAML files and cache data. The
repo directory is ignored and will need to be re-cloned when the user
runs `recyclarr` next time.
Symlinks are difficult to deal with. At this point, it was still failing
to migrate the `.config/recyclarr/repo` directory. Even though it still
doesn't work 100%, I'm going to leave it as it is and instead simplify
what gets migrated later.