From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8E890A0A0A for ; Thu, 20 May 2021 11:37:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8180C40143; Thu, 20 May 2021 11:37:19 +0200 (CEST) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by mails.dpdk.org (Postfix) with ESMTP id 4D63140041 for ; Thu, 20 May 2021 11:37:18 +0200 (CEST) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 07A18202955; Thu, 20 May 2021 11:37:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=KqschCLwTQfdpdN7YYYD FkV4tuI/R1lqG8VOTRObAPU=; b=xWOAGFKDfjoSahksAm8V5ojhFpTfA33e/m0O /pbSkjkROCohPQij+CMGatOSE/4mQuQ2751JQbZgC1u9If6JxjRDnK2HyhFnkIXF JktjqxqfyLEXza97Ovwfy6euenM8c0E+BY7GPpXerzLibwMLNSWL5yAXTa/PIuQV bfpNvIHr+/XISbBO5GvHmyL7LZZFbyn+2WrxWHWgrwp6DYP2GsjPYoz1l9//OZtV uMXofcf0ms22VW+VjmEk5DdF9hgCLDRs4VNjiSUmjXXc8IJyjEnDrxs6Z0TIFjQU G/PoPIb+WmnBrXcFnuTi1ZBLPaaXPncHjSog7R7vpsG+fAt/HA== From: =?iso-8859-2?Q?Juraj_Linke=B9?= To: Aaron Conole , Michael Santana CC: "ci@dpdk.org" , Bruce Richardson , Thomas Monjalon , "Lincoln Lavoie" Thread-Topic: [RFC pw-ci] pw_mon: check for recheck requested comments Thread-Index: AQHXTLnIXpOmfNaZ2ESFPPwdYYj+jarsGwQQ Date: Thu, 20 May 2021 09:37:16 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-ci] [RFC pw-ci] pw_mon: check for recheck requested comments X-BeenThere: ci@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK CI discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ci-bounces@dpdk.org Sender: "ci" > -----Original Message----- > From: Aaron Conole > Sent: Wednesday, May 19, 2021 4:18 PM > To: Michael Santana > Cc: ci@dpdk.org; Juraj Linke=B9 ; Bruce Richa= rdson > ; Thomas Monjalon ; > Lincoln Lavoie > Subject: [RFC pw-ci] pw_mon: check for recheck requested comments >=20 > ENOTREADY: Missing the actual recheck logic... needs some input / > design before committing to anything. >=20 > 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: >=20 > ^Recheck-request: .*$ >=20 > The line would break up as: >=20 > Recheck-request: [context] >=20 > 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 reques= t a > recheck of the series by sending an email reply with the line: >=20 > Recheck-request: github-robot >=20 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. >=20 I think that if we're able to specify multiple contexts, then there's not r= eally 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. >=20 > Signed-off-by: Aaron Conole > --- > Submitting to the ci@dpdk.org mailing list for inputs / comments, etc. >=20 > 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 > } >=20 > +function run_recheck() { > + local recheck_name=3D$(echo "$7" | sed 's,^Recheck-request: ,,') > + echo "# recheck for $recheck_name requested...." > +} > + > +function check_series_needs_retest() { > + local pw_instance=3D"$1" > + > + series_get_active_branches "$pw_instance" | while IFS=3D\| read -r s= eries_id > project url repo branchname; do > + local patch_comments_url=3D$(curl -s "$userpw" "$url" | jq -rc '= .comments') > + if [ "Xnull" !=3D "X$patch_comments_url" ]; then > + local comments_json=3D$(curl -s "$userpw" "$patch_comments_u= rl") > + local seq_end=3D$(echo "$comments_json" | jq -rc 'length') > + if [ "$seq_end" -a $seq_end -gt 0 ]; then > + seq_end=3D$((seq_end-1)) > + for comment_id in $(seq 0 $seq_end); do > + local recheck_requested=3D$(echo "$comments_json" | = jq -rc > ".[$comment_id].content" | grep "^Recheck-request: ") > + if [ "X$recheck_requested" !=3D "X" ]; then > + local msgid=3D$(echo "$comments_json" | jq -rc > ".[$comment_id].msgid") > + run_recheck "$pw_instance" "$series_id" "$projec= t" "$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" > --- >=20