The `-dev.` docker tags create a lot of noise and cloud out the actual
non-prerelease versions in the tag listings on Docker Hub and GHCR.
Additionally, there's no built-in retention policies in these registries
and manual attempts to clean up old dev images are difficult.
Users that are interested in immutable tags can pin the `edge` tag to a
digest.
For easier integration into docker buildx, Recyclarr is now built inside
of the Dockerfile as a dedicated build stage. This simplified the CI
workflows and local testing a bit.
The changes for this new process were driven by Microsoft's recommended
approach to building .NET applications inside Docker, which is
documented here:
https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
Due to [an issue][1] with the `actions/upload-artifact` action, when
binaries are uploaded they lose permission bits and `xattr` properties.
Composite actions `upload-tar` and `download-tar` have been added that
tarball the artifacts before uploading them to retain those properties.
[1]: https://github.com/actions/upload-artifact/issues/38
Changelog:
- Sign & notarize Recyclarr on macOS platforms (arm64, x64)
- Use `tar.xz` instead of `zip` on mac & linux platforms
- Compile linux binaries on the ubuntu-latest Github runner
- Compile macOS binaries on the macos-latest Github runner
- Executable size reduced by disabling ReadyToRun
Fixes#39