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
The removal of Sonarr v3 support (commit d45563cf) introduced a bug
resulting in media naming no longer working due to the `:4` key suffix
not being checked anymore.
Additionally, there were some tests under `src/tests/` that needed to be
moved to `tests/`. One of these tests in particular helped identify this
bug. Those tests have been moved to the appropriate location.
Change `resharper_wrap_before_arrow_with_expressions` to `false`. This
is to force the `=>` operator to not be wrapped with the code to the
right of it.
This code existed as an attempt to avoid a major version bump as a
result of the .NET 8 upgrade. However, this just adds confusion. The
migration step is now required to perform the directory migration and
the details have been added to the v7.0 upgrade guide.
Use the fork again until the upstream starts merging pull requests. It
is out of date with its forks. The main motivation for this change is to
get off the now deprecated Node v16.
The Apple Signing step grabs an existing artifact, signs the binaries,
and then re-uploads the artifact, replacing the original one. The
upgrade to v4 of the `actions/upload-artifact` action broke this
behavior due to a breaking change documented in [the release notes][1]:
> Due to how Artifacts are created in this new version, it is no longer
> possible to upload to the same named Artifact multiple times. You must
> either split the uploads into multiple Artifacts with different names,
> or only upload once. Otherwise you will encounter an error.
The fix is to use the `overwrite: true` setting to force the old
behavior of replacing the previous (unsigned) artifact.
[1]: https://github.com/actions/upload-artifact/blob/main/README.md#breaking-changes
- Remove schemas because there doesn't seem to be any jobs that operate
on these files. I don't remember the reason that it was added in the
first place; but can deal with that later if I notice something wrong.
- Add props/targets files so that we rebuild when we update package
versions, etc.
This mode apparently works like Continuous Delivery. And Mainline works
like Continuous Deployment. Version 6.0 is supposed to fix this
confusion later. Also introduce the `dev` prerelease tag.