DPDK CI discussions
 help / color / mirror / Atom feed
From: "Juraj Linkeš" <juraj.linkes@pantheon.tech>
To: Aaron Conole <aconole@redhat.com>, Michael Santana <msantana@redhat.com>
Cc: "ci@dpdk.org" <ci@dpdk.org>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	"Lincoln Lavoie" <lylavoie@iol.unh.edu>
Subject: Re: [dpdk-ci] [RFC pw-ci] pw_mon: check for recheck requested comments
Date: Thu, 20 May 2021 09:37:16 +0000	[thread overview]
Message-ID: <a6bafe02e42d48ee90edd013cda643fb@pantheon.tech> (raw)
In-Reply-To: <f7tmtsqdcz2.fsf@redhat.com>



> -----Original Message-----
> From: Aaron Conole <aconole@redhat.com>
> Sent: Wednesday, May 19, 2021 4:18 PM
> To: Michael Santana <msantana@redhat.com>
> Cc: ci@dpdk.org; Juraj Linkeš <juraj.linkes@pantheon.tech>; Bruce Richardson
> <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Lincoln Lavoie <lylavoie@iol.unh.edu>
> Subject: [RFC pw-ci] pw_mon: check for recheck requested comments
> 
> ENOTREADY: Missing the actual recheck logic... needs some input /
>            design before committing to anything.
> 
> When a developer wants to ask for a test case recheck (for example, maybe to
> rerun the github-actions test suite), we scan for the specific
> line:
> 
> ^Recheck-request: .*$
> 
> The line would break up as:
> 
>    Recheck-request: [context]
> 
> where '[context]' is the name of the check (as it appears in the UI).
> For example, if we look at a patch that has 'github-robot', we can request a
> recheck of the series by sending an email reply with the line:
> 
> Recheck-request: github-robot
> 

Do we want to support multiple contexts for one recheck request? Seems very useful since there could be multiple failed contexts.

> It is important to use the 'msgid' field to distinguish recheck requests.
> Otherwise, we will continuously reparse the same recheck request and loop
> forever.

How do you use this? Is this the message-id header? Or in-reply-to?

>  Additionally, we've discussed using a counter to limit the recheck
> requests to a single 'recheck' per test name.
> 

I think that if we're able to specify multiple contexts, then there's not really any reason to run multiple rechecks per patchset.

> As an additional change, we run after the 'superseded' and 'completed'
> checks, to ensure that we don't bother parsing comments from older series that
> aren't relevant any longer.
> 
> Signed-off-by: Aaron Conole <aconole@redhat.com>
> ---
> Submitting to the ci@dpdk.org mailing list for inputs / comments, etc.
> 
> diff --git a/pw_mon b/pw_mon
> index 28feb8b..26c667d 100755
> --- a/pw_mon
> +++ b/pw_mon
> @@ -154,7 +154,35 @@ function check_superseded_series() {
>      done
>  }
> 
> +function run_recheck() {
> +    local recheck_name=$(echo "$7" | sed 's,^Recheck-request: ,,')
> +    echo "# recheck for $recheck_name requested...."
> +}
> +
> +function check_series_needs_retest() {
> +    local pw_instance="$1"
> +
> +    series_get_active_branches "$pw_instance" | while IFS=\| read -r series_id
> project url repo branchname; do
> +        local patch_comments_url=$(curl -s "$userpw" "$url" | jq -rc '.comments')
> +        if [ "Xnull" != "X$patch_comments_url" ]; then
> +            local comments_json=$(curl -s "$userpw" "$patch_comments_url")
> +            local seq_end=$(echo "$comments_json" | jq -rc 'length')
> +            if [ "$seq_end" -a $seq_end -gt 0 ]; then
> +                seq_end=$((seq_end-1))
> +                for comment_id in $(seq 0 $seq_end); do
> +                    local recheck_requested=$(echo "$comments_json" | jq -rc
> ".[$comment_id].content" | grep "^Recheck-request: ")
> +                    if [ "X$recheck_requested" != "X" ]; then
> +                        local msgid=$(echo "$comments_json" | jq -rc
> ".[$comment_id].msgid")
> +                        run_recheck "$pw_instance" "$series_id" "$project" "$url"
> "$repo" "$branchname" "$recheck_requested" "$msgid"
> +                    fi
> +                done
> +            fi
> +        fi
> +    done
> +}
> +
>  check_undownloaded_series "$pw_instance" "$pw_project"
>  check_completed_series "$pw_instance" "$pw_project"
>  check_new_series "$pw_instance" "$pw_project"
>  check_superseded_series "$pw_instance"
> +check_series_needs_retest "$pw_instance"
> ---
> 



  reply	other threads:[~2021-05-20  9:37 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-19 14:17 Aaron Conole
2021-05-20  9:37 ` Juraj Linkeš [this message]
2021-05-20 19:16   ` Aaron Conole
2021-05-20 13:38 ` David Marchand
2021-05-20 21:05   ` Aaron Conole
2021-05-21  9:38     ` David Marchand
2021-06-17 14:38       ` Lincoln Lavoie

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=a6bafe02e42d48ee90edd013cda643fb@pantheon.tech \
    --to=juraj.linkes@pantheon.tech \
    --cc=aconole@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=ci@dpdk.org \
    --cc=lylavoie@iol.unh.edu \
    --cc=msantana@redhat.com \
    --cc=thomas@monjalon.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).