From: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>, Taylor Blau <me@ttaylorr.com>,
git@vger.kernel.org, Jeff Hostetler <jeffhost@microsoft.com>,
Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: [PATCH v2 1/2] CI: limit GitHub Actions to designated branches
Date: Wed, 6 May 2020 07:46:12 +0700 [thread overview]
Message-ID: <20200506004612.GE927@danh.dev> (raw)
In-Reply-To: <20200505210451.GA645290@coredump.intra.peff.net>
On 2020-05-05 17:04:51-0400, Jeff King <peff@peff.net> wrote:
> We could likewise try to get some information from the branch name. But
> that leads to debates about whether the default should be "off" or "on",
> and overriding still ends up somewhat awkward. If we default to "on",
> you have to remember to name your branches appropriately to skip CI. And
> if "off", you end up having to contort your branch names or duplicate
> your pushes with an extra refspec.
>
> By comparison, this commit's solution lets you specify your config once
> and forget about it, and all of the data is off in its own ref, where it
> can be changed by individual forks without touching the main tree.
How about supports the best of both worlds.
Let's say support wildcard 'wip/**' for opt-out.
And use "./allow-ref" to filter everything that passed the wildcard.
> I used refs/ci/config as the config ref, which should be a commit whose
> tree contains various config files (right now the only one is
> "ref-whitelist"). It was intentional to avoid refs/heads/ here so we
> don't conflict with any branch workflows. But it does make it a little
> awkward to edit, since you can't check it out directly.
>
> Right now the logic is to run CI for all branches by default, unless a
> whitelist exists, in which case the branch must be mentioned there
> (using its fully qualified ref name). We could easily add in a
> blacklist, as well. Or since we're running a shell in a VM, we really
> could just run "./allow-ref $refname" and let individual forks specify
> whatever shell code they like.
Should we go with this route, here is a fix-up patch for your,
(after cherry-pick my [1/3])
--------------------8<-------------------
Subject: [PATCH] fixup! ci: allow per-branch config for GitHub Actions
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
.github/workflows/main.yml | 3 +--
Documentation/SubmittingPatches | 12 ++++++++++++
contrib/ci-config-allow-ref | 9 +++++++++
3 files changed, 22 insertions(+), 2 deletions(-)
create mode 100755 contrib/ci-config-allow-ref
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 51f4ff6e89..08217c5ed8 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -19,8 +19,7 @@ jobs:
name: check whether CI is enabled for ref
run: |
enabled=yes
- if test -e ref-whitelist &&
- ! grep '^${{ github.ref }}$' ref-whitelist
+ if test -x allow-ref && ! ./allow-ref '${{ github.ref }}'
then
enabled=no
fi
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 8686318550..8175424929 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -82,6 +82,18 @@ Alternately, you can use GitHub Actions (which supports testing your changes
on Linux, macOS, and Windows) by pushing into a branch in your fork
or opening a GitHub's Pull Request against
https://github.com/git/git.git or a fork of that repository.
+In the event that you only want to trigger GitHub Actions for specific
+refname, you can create an executable file named `allow-ref` in
+`refs/ci/config`. Those below steps may help you:
+--------------
+$ git checkout --orphan ci-config
+$ cp contrib/ci-config-allow-ref allow-ref
+$ $EDITOR allow-ref
+$ git rm -rf .
+$ git commit allow-ref
+$ git push <your-fork> HEAD:refs/ci/config
+--------------
+
Do not forget to update the documentation to describe the updated
behavior and make sure that the resulting documentation set formats
diff --git a/contrib/ci-config-allow-ref b/contrib/ci-config-allow-ref
new file mode 100755
index 0000000000..b53e9ddbd0
--- /dev/null
+++ b/contrib/ci-config-allow-ref
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Sample filter for GitHub Actions
+# GitHub Actions will run if and only if this script exit with zero status
+
+REFNAME="$1"
+
+case "$REFNAME" in
+refs/heads/no-ci*) exit 1 ;;
+esac
--
2.26.2.672.g232c24e857
next prev parent reply other threads:[~2020-05-06 0:46 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-02 15:08 [PATCH] ci: respect the [skip ci] convention in our GitHub workflow "CI/PR" Johannes Schindelin via GitGitGadget
2020-05-03 9:36 ` Jeff King
2020-05-03 12:05 ` Danh Doan
2020-05-04 15:01 ` Jeff King
2020-05-04 15:49 ` [PATCH v2 0/2] Limit GitHub Actions to designated branches Đoàn Trần Công Danh
2020-05-04 15:49 ` [PATCH v2 1/2] CI: limit " Đoàn Trần Công Danh
2020-05-04 16:23 ` Jeff King
2020-05-04 21:58 ` Taylor Blau
2020-05-04 22:52 ` Junio C Hamano
2020-05-04 23:15 ` Taylor Blau
2020-05-04 23:35 ` Jeff King
2020-05-05 0:24 ` Junio C Hamano
2020-05-04 23:36 ` Jeff King
2020-05-05 0:20 ` Taylor Blau
2020-05-05 16:43 ` Jeff King
2020-05-05 17:57 ` Junio C Hamano
2020-05-05 18:24 ` Jeff King
2020-05-05 21:04 ` Jeff King
2020-05-05 21:29 ` Junio C Hamano
2020-05-05 21:58 ` Jeff King
2020-05-05 22:28 ` Junio C Hamano
2020-05-06 15:09 ` Johannes Schindelin
2020-05-06 16:26 ` Junio C Hamano
2020-05-07 12:17 ` Jeff King
2020-05-07 14:02 ` Jeff King
2020-05-07 18:17 ` Junio C Hamano
2020-05-07 12:01 ` Đoàn Trần Công Danh
2020-05-07 12:47 ` Đoàn Trần Công Danh
2020-05-06 0:46 ` Đoàn Trần Công Danh [this message]
2020-05-06 3:56 ` Junio C Hamano
2020-05-06 14:25 ` Đoàn Trần Công Danh
2020-05-06 16:31 ` Junio C Hamano
2020-05-07 12:25 ` Jeff King
2020-05-07 18:29 ` Junio C Hamano
2020-05-07 18:54 ` Jeff King
2020-05-07 19:33 ` Junio C Hamano
2020-05-07 16:20 ` [PATCH v2] ci: allow per-branch config for GitHub Actions Jeff King
2020-05-07 17:00 ` Taylor Blau
2020-05-07 17:18 ` Jeff King
2020-05-07 19:53 ` Junio C Hamano
2020-05-07 20:46 ` Jeff King
2020-05-07 21:58 ` Junio C Hamano
2020-05-08 18:00 ` Jeff King
2020-05-09 1:23 ` Đoàn Trần Công Danh
2020-05-05 0:34 ` [PATCH v2 1/2] CI: limit GitHub Actions to designated branches Đoàn Trần Công Danh
2020-05-04 15:49 ` [PATCH v2 2/2] SubmittingPatches: advertise GitHub Actions CI Đoàn Trần Công Danh
2020-05-04 16:37 ` Junio C Hamano
2020-05-05 0:46 ` Đoàn Trần Công Danh
2020-05-05 16:26 ` [PATCH v3 0/3] Provide option to opt in/out GitHub Actions Đoàn Trần Công Danh
2020-05-05 16:26 ` [PATCH v3 1/3] SubmittingPatches: advertise GitHub Actions CI Đoàn Trần Công Danh
2020-05-05 16:47 ` Jeff King
2020-05-05 16:59 ` Đoàn Trần Công Danh
2020-05-05 17:07 ` Jeff King
2020-05-05 16:26 ` [PATCH v3 2/3] CI: limit GitHub Actions to designated branches Đoàn Trần Công Danh
2020-05-05 16:51 ` Jeff King
2020-05-05 17:05 ` Đoàn Trần Công Danh
2020-05-05 17:11 ` Jeff King
2020-05-05 18:49 ` Junio C Hamano
2020-05-05 16:26 ` [PATCH v3 3/3] fixup! " Đoàn Trần Công Danh
2020-05-05 18:59 ` Junio C Hamano
2020-05-05 17:01 ` [PATCH v3 0/3] Provide option to opt in/out GitHub Actions Jeff King
2020-05-03 16:46 ` [PATCH] ci: respect the [skip ci] convention in our GitHub workflow "CI/PR" Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200506004612.GE927@danh.dev \
--to=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jeffhost@microsoft.com \
--cc=johannes.schindelin@gmx.de \
--cc=me@ttaylorr.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.