git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/2] replacing ci/config/allow-ref with a repo variable

From
Jeff King <peff@peff.net>
Date
Sep 14, 2023, 00:30 UTC
Message-ID
<20230914003010.GA1709842@coredump.intra.peff.net>
In-Reply-To
<59b423e9-d99e-4817-8a33-c50419593740@gmail.com>
On Wed, Sep 13, 2023 at 04:16:48PM +0100, Phillip Wood wrote:
Show 14 quoted lines
> On 11/09/2023 10:36, Jeff King wrote:
> > On Thu, Sep 07, 2023 at 11:04:33AM +0100, Phillip Wood wrote:
> > Looking at the ci-config branch of phillipwood/git.git, I see this in
> > your allow-refs:
> > 
> >        refs/heads/main|refs/heads/master|refs/heads/maint|refs/heads/next|refs/heads/seen|refs/tags/gitgui-*|refs/tags/pr-[0-9]*|refs/tags/v[1-9].*)
> > 
> > So you do use multiple prefixes, though all in refs/tags/.  Do you
> > actually push tags for which you do want to run CI,
> 
> Yes, but not very often - I could probably just reject all tags and start
> the CI manually when I want it (assuming that's an option). Thanks for
> digging into the various options, it sounds like it is possible so long as
> we don't want multiple prefixes.

I'll additionally have to switch to using the full refname in the matches, but that is probably a reasonable thing to do anyway (it makes config a bit more verbose, but it is obviously much more flexible).

We can do the loop-unroll thing if we really want to support multiple prefixes, but if you're OK with it, let's try the single-prefix way and see if anybody runs into problems (I'm still convinced there's only a few of us using this stuff anyway). I'm hesitant to do the unroll just because it requires picking a maximum value, with a bizarre failure if you happen to have 4 prefixes or whatever.

I'll see if I can polish up what I showed earlier into a patch.

(BTW, one other thing I tried was using fromJSON(vars.CI_CONFIG) in the "on" expression, which in theory would allow globbing. But it doesn't look like expressions work at all in that context. And even if they did, I'm not sure we could make it work such that an empty CI_CONFIG used some defaults, since there's no conditional-expression ternary operator).

Show 7 quoted lines
> Aside: what I'd really like is to be able to set an environment variable
> when I push to skip or force the CI
> 
> 	GITHUB_SKIP_CI=1 git push github ...
> 
> but that would require support from the git client, the protocol and the
> server.

We have the necessary bits at the protocol: push-options. But it's up to the server-side hooks to decide which ones are meaningful and to do something useful with them. It looks like GitLab supports:

  git push -o ci.skip=1 ...
but I don't think GitHub respects any equivalent option.
-Peff
Previous: Phillip WoodNext: Jeff King
Message 16 of 18 in “replacing ci/config/allow-ref with a repo variable”
  1. 0/2 replacing ci/config/allow-ref with a repo variableJeff King, Aug 30, 2023
  2. 1/2 ci: allow branch selection through "vars"Jeff King, Aug 30, 2023
  3. Johannes SchindelinSep 3, 2023
  4. Jeff KingSep 5, 2023
  5. Johannes SchindelinSep 5, 2023
  6. Jeff KingSep 7, 2023
  7. 2/2 ci: deprecate ci/config/allow-ref scriptJeff King, Aug 30, 2023
  8. Junio C HamanoAug 30, 2023
  9. Phillip WoodSep 1, 2023
  10. Jeff KingSep 1, 2023
  11. Phillip WoodSep 4, 2023
  12. Jeff KingSep 5, 2023
  13. Phillip WoodSep 7, 2023
  14. Jeff KingSep 11, 2023
  15. Phillip WoodSep 13, 2023
  16. Jeff KingSep 14, 2023
  17. Jeff KingSep 14, 2023
  18. Phillip WoodSep 14, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.