Improve automated release process for all platforms
dotnet-releaser is not actually publishing the release for some reason when done via CI.
...maybe I shouldn't add the tag myself...? does the releaser handle this? That might fix the changelog and tagging versioning issues. But will it realize it needs to publish...?
For macOS: Can we make an actual .app instead...? Maybe we need to zip things ourselves and add them to the release to fix the issue of the executables not being chmod +x'ed...
I have a developer account so making an actual .app should be possible.
- https://avaloniaui.net/blog/the-definitive-guide-to-building-and-deploying-avalonia-applications-for-macos for commands/script references
- https://github.com/Bogdanp/Franz/blob/388edfd7238839af52ecda9ad8554fba7e462db5/.github/workflows/build.yml#L105-L196
- https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development
- https://docs.avaloniaui.net/docs/deployment/macOS
To attempt to make an app bundle with dotnet publish:
-
sudo dotnet workload install "macos" - Make sure to add
net8.0-macostoTargetFrameworks -
<ApplicationId>com.identifier</ApplicationId>in csproj -
dotnet publish -f net8.0-macos -r osx-arm64 -c Release<-- makes a .pkg inpublishfolder and a.appoutside of it IFSingleFilePublishis...false?! Why does it make a .pkg? See this thread also- Got error: error NETSDK1098: Applications published to a single-file are required to use the application host. You must either set PublishSingleFile to false or set UseAppHost to true
- This error doesn't make sense as
UseAppHostis already true.
This now works properly on CI/CD. However, https://github.com/xoofx/dotnet-releaser/issues/63 is an issue, and we could probably improve things by using a .app file on macOS.
However, at least all the builds are running properly, now!
OK, the thing is executable now since the issue in the other repo is fixed, so Linux is fairly good to go, but due to notarization, macOS is still a pain. We should at least build a .app for users if nothing else. Should be able to notarize it too, but that'll be another step beyond .app.
If we build it ourselves outside dotnet-releaser, can use: https://github.com/AButler/upload-release-assets