Support Forgejo for upstream CI
Description
Packit Service should support Forgejo for upstream CI and integrate with the flagship Codeberg.org instance and Fedora Forge once that's up and running.
- [ ] https://github.com/packit/ogr/issues/866
- [ ] https://github.com/packit/packit-service/pull/2852
- [ ] ...
Benefit
Projects that use Codeberg or Fedora Forge as their upstream code forge will be able to use Packit and use Copr builds in CI, syncing with downstream, Testing Farm integration, and other Packit features.
Importance
This will be pretty important once projects start switching over to Fedora Forge and also for projects that are unhappy with Github or Gitlab.com and looking for a new fully open source home for their projects on Codeberg while still integrating with Fedora via Packit.
Also, Fedora Forge currently does not have a way to trigger TMT tests, and Packit could potentially be the new solution for this since Zuul that some Pagure.io projects currently use does not support Forgejo and seems to be getting phased out. See the discussion in https://discussion.fedoraproject.org/t/fedora-forge-update/164338/9.
What is the impacted category (job)?
General
Workaround
- [ ] There is an existing workaround that can be used until this feature is implemented.
Participation
- [ ] I am willing to submit a pull request for this issue. (Packit team is happy to help!)
https://github.com/fedora-infra/noggin/issues/1538 relevant to track
Also, Fedora Forge currently does not have a way to trigger TMT tests
There is actually a testing-farm github action that could be converted to forgejo action, but otherwise indeed the plan is to have packit service as the orchestrator at least for this integration since all of the components are already present
Hi @gotmax23 , thanks for bringing this topic up!
A couple of things:
- Packit should implement support for Forgejo nevertheless because of Packit becoming a Fedora dist-git CI. And we agreed to do this so other solutions (Fedora Zuul Tenant and Fedora CI) does not need to.
- There is not so much work needed to support Forgejo as upstream if/when we support it as dist-git. (Maybe events might be handled differently -- Fedora Messaging x native Forgejo webhooks)
- There's also related effort trying to reuse Packit to provide PR/CI approach for package review and it's using Forgejo: https://github.com/packit/avant/ (ping @mynk8 ..;-)
Basically, there are 3 parts to be done:
- [ ] git-forge manipulation (~implementation in OGR https://github.com/packit/ogr/issues/866 ) -- this should not be hard to implement for anyone and help is more then welcome!
- [ ] event processing (~ implementation in packit-service) -- @mynk8 started this here. Thanks @mfocko for looking!
- [ ] Accounts for any instance to be supported.
Do we know about real projects/people interested in this? Would be nice to see the possible demand before spending the time on this. (But I know induced demand plays a role here..;)
So, this definitely makes sense but help might be needed to make it soon. (Context: Packit team is currently temporarily helping with another project but hopefully switching focus back to Packit soon.) If anyone can help, helping with OGR implementation (https://github.com/packit/ogr/issues/866 ) might be a good candidate for external contributors...
Thanks for the detailed response, @lachmanfrantisek!
Do we know about real projects/people interested in this? Would be nice to see the possible demand before spending the time on this. (But I know induced demand plays a role here..;)
@adamwill provided a list of Pagure projects in the forum post (https://discussion.fedoraproject.org/t/fedora-forge-update/164338/14) that are involved in releasing Fedora or used by Fedora QA that currently use Zuul for CI jobs that would presumably use Packit+TMT integration once they migrate away from Pagure.io.
As for the Fedora Go SIG, Packit support in Fedora Forge is a hard blocker for us to migrate there from Gitlab.com/Fedora. I also have some personal Fedora-related projects that I host on Sourcehut and use a different approach for test builds in CI, but I would also be interested in moving those to Codeberg when/if Packit support is implemented.
I can help with completing the reactions and issues impl in ogr. I need to rebase the old patches I used for avant.