
On Thu, Oct 06, 2022 at 10:52:03AM +0200, Peter Krempa wrote:
On Thu, Oct 06, 2022 at 09:20:08 +0100, Daniel P. Berrangé wrote:
On Thu, Oct 06, 2022 at 09:42:26AM +0200, Peter Krempa wrote:
On Tue, Oct 04, 2022 at 08:51:50 -0400, Daniel P. Berrangé wrote:
This refresh switches the CI for contributors to be triggered by merge requests. Pushing to a branch in a fork will no longer run CI pipelines, in order to avoid consuming CI minutes. To regain the original behaviour contributors can opt-in to a pipeline on push
git push <remote> -o ci.variable=RUN_PIPELINE=1
This should be also documented in ci/README.rst as this commit message will become gradually harder to find.
It is present in comments at the top of ci/gitlab.yml, along with info about some other variables that exist.
Ah, okay. So in that case, ci/README.rst should point out that the yml file has further docs, so that the users don't have to look too deep.
I welcome if pipelines are run automatically and I don't have to fiddle with the web UI or try to figure out which custom approach the project picked to run pipelines especially if I can't be bothered to set up the test env locally e.g. for a one-off contribution.
Users were always able to opt-out of running pipelines if they wish to just store code in their fork by using '-o ci.skip=true' which is a gitlab option thus same for all projects.
That was fine (for users, but not GitLab's $$$ burn) when CI was unlimited, but we need to be more respectful of users CI quota now it is finite and very easy to quickly exhaust.
This variable can also be set globally on the repository, though this is not recommended.
Also mention how to do this for anyone interested to preserve the old behaviour by default.
As above, I really recommend against doing this, unles you want to burn through your CI minutes quickly and find you can't run anymore for the rest of the month. If you really really really want to take this risk, then it is just Settings -> CI -> Variables in the repo in question
Well, I only ever really push to my fork to run CI, so I definitely want to preserve the old behaviour. Thus if I run out of CI minutes I'll happen regardless of how that's set up. If that ends up to be a problem I'll most likely have to setup private runners.
BTW, a neat trick for git push options shown in: https://docs.gitlab.com/ee/user/project/push_options.html is to set up git command aliases git config --local alias.push-ci "push -o ci.variable=RUN_PIPELINE=1" git config --local alias.push-mr "push -o merge_request.create=1 -o merge_request.target=master -o merge_request.remove_source_branch=1" So eg git push-mr <remote> wil open a merge request with the branch contents. The caveat is that it will pick the title + description from the first commit which is not too useful. What I'd like is an alias that can popup an $EDITOR to enter the title and description, and then pass those as push options - so you get a workflow kinda like 'git-publish' gives you (but without ability to annotate individual patches). With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|