gama-platform / gama.old

Main repository for developing the 1.x versions of GAMA
GNU General Public License v3.0
304 stars 99 forks source link

Create a github action for winget deployment #3862

Closed lesquoyb closed 1 year ago

lesquoyb commented 1 year ago

Describe the bug Deployment to winget-pkgs can be tricky. I found out there's a github action tool that makes it possible to automate this process: winget-releaser maybe we can investigate this to see if it fits our deployment process and hopefully make it smoother for next releases.

Note: what I did to be able to push the new version on the winget-pkg repo:

RoiArthurB commented 1 year ago

I would be careful adding this in our CI/CD. I'm not sure if winget is supporting pre-release and, on the way we're recently creating our release (i.e creating an alpha version, then manually renaming it and changing GH's release flag) I don't think it would help us pushing our next stable release on winget :/

A better work would be to create an extended GHA which would create a real/clean stable release on GitHub and, at the same time, publishing on every third party installers (linux, homebrew, winget, else ?)

lesquoyb commented 1 year ago

From what I know they don't really care if it's alpha or not, they just want a download link, probably from any reachable url. I'm not proposing that we create a job that will automatically push the latest build to the winget repo, though I'm sure it's feasible. But just to create a job that we can manually activate and that will execute the necessary commands to generate the files for a new release and create a pull request on the winget-pkg repo. That can completely be a subpart of a bigger script that will push a release on the different third party installer hosts

WoodenMaiden commented 1 year ago

I looked at the vedantmgoyal2009/winget-releaser@v2 action and especially Komac, the tool that it uses. Both the action and Komac seems to be widely used and effective, even though it looks like will create a repo in the organization

@lesquoyb told me that the switch from a pre-release to a release was done manually, so I created a workflow that triggers when a pre-release turns into a release.

Since there is an event with the creation of a pre-release, it would be possible to ship pre-release to winget and others.

Concerning pre-releases and winget, maybe we could have the production ready package with PackageIdentifier set as GamaPlatform.Gama, and the pre-release with PackageIdentifier set as GamaPlatform.Gama_unstable as they don't really care about wether what we gave them is a pre-release or not, moreover it is possible to delete the previous re-release we send them with the action's max-versions-to-keep input