V Fri, Jan 29, 2021 at 06:52:29PM +0100, Kevin Kofler via devel napsal(a):
I still think that the best way to do CI would be what I already
suggested
at least once:
1. maintainer pushes the commit to the branch "rawhide" or "fn"
2. a quick synchronous commit hook validates obvious things such as the
presence of source files and patches
If this fails, the push fails and we stop here. Otherwise:
3. another commit hook asynchronously triggers a CI build
4. the push succeeds (without waiting for the CI build to complete)
5. the asynchronous CI attempts to build the package
6. if the CI build fails, the branch "rawhide" or "fn" is
automatically
force-pushed back to the last commit that successfully built, and an
e-mail notification is sent. Force-pushing is safe in that case because
there was by definition no successful build, hence nothing that shipped
in any repos.
Technically you can make multiple builds from the very same branch and commit. And
some of the builds can pass and some fail.
In reality there are modules which refer a component by a release branch (e.g.
"master" or "f33" branch).
-- Petr