o3de / o3de-extras

Other
60 stars 60 forks source link

Feature request - Automatically publish a new Gem/Template #162

Open amzn-changml opened 1 year ago

amzn-changml commented 1 year ago

As a developer, I would like to have automation (Github Actions preferred) do the following once a primary branch is updated:

byrcolin commented 1 year ago

I think this should be a high priority feature, it is important for proving out the system.

adamdbrw commented 1 year ago

@byrcolin @hultonha could the work associated with this task be further divided? Could we discuss how we approach it together?

hultonha commented 1 year ago

Tagging @amzn-changml as well (unfortunately @byrcolin is no long contributing to the project)

hultonha commented 1 year ago

Discussed in sig-simulation triage. Even though this is something sig-simulation (robotics) would be interested in, we would not be delivering this feature, so have removed the label for now.

lemonade-dm commented 1 year ago

Some questions about the publishing a new Gem/Template.

Would the actions occurs to whenever a change occurs to a specific Gem/Template folder is merged to the primary branch or part of a time interval such daily? I imagine that an action that scans over the repo for any directories with repo.json files in them and check if there has been any commits since the last time the Gem/Template was published.

Also would there be a separate release entry per Gem/Template or a single entry in the Github release per day if there was a change that occurred? This goes inline with how often the Gem/Template would be published. If it is after every commit, there would have to be a new entry per Gem/Template. If the action is triggered once a day, then a single release entry can be added to the releases page.

Finally is there some size or daily limit for Github releases? Most of the Templates contains some small amount of assets. Do we need to be cognizant of what is being uploaded to Github

amzn-changml commented 1 year ago

Would the actions occurs to whenever a change occurs to a specific Gem/Template folder is merged to the primary branch or part of a time interval such daily?

It can be both. There's flags to trigger on PR (new and on change), push, or cron. We can also do some more complex behavior (which may be required) to only detect changes based on a specific path.

Also would there be a separate release entry per Gem/Template or a single entry in the Github release per day if there was a change that occurred?

We would create a package per Gem/Template. I would lean towards using Github Packages over Github Releases, as the latter would release the entire repo as a whole instead of a per Gem/template change. (I've edited the request with this in mind). Here's an example of how Homebrew manages their packages in Github Packages: https://github.com/orgs/Homebrew/packages, which uses ruby scripts to build them: https://github.com/Homebrew/homebrew-core/tree/master/Formula

Finally is there some size or daily limit for Github releases?

There are no current limits as long as it's a public project (at no cost either).

Do we need to be cognizant of what is being uploaded to Github

Only if the Gem/Template is published under O3DF. If the repo is owned by another user, the legal responsibility lies with them.

amzn-changml commented 1 year ago

Accepting this as part of sig-build. We'll put higher priority on this along with the 3p packages automation. This will be similar to the method of containerizing and extracting the binary artifact in the RFC: https://github.com/o3de/sig-build/blob/main/rfcs/rfc-bld-20230302-1-3p-development.md