Skip to content

Commit 831f2f7

Browse files
committed
/.github/{scripts,workflows}: working through some pr regressions labeling
1 parent 70b785d commit 831f2f7

7 files changed

+104
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
99.997743

.github/scripts/sql-correctness/get-dolt-correctness-job-json.sh

+10-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
set -e
44

55
if [ "$#" -lt 5 ]; then
6-
echo "Usage: ./get-dolt-correctness-job-json.sh <jobname> <version> <timeprefix> <actorprefix> <format> <nomsBinFormat> <issueNumber>"
6+
echo "Usage: ./get-dolt-correctness-job-json.sh <jobname> <version> <timeprefix> <actorprefix> <format> <nomsBinFormat> <issueNumber> <regressComp>"
77
exit 1
88
fi
99

@@ -14,6 +14,7 @@ actorprefix="$4"
1414
format="$5"
1515
nomsBinFormat="$6"
1616
issueNumber="$7"
17+
regressComp="$8"
1718

1819
precision="6"
1920

@@ -25,6 +26,12 @@ if [ -n "$issueNumber" ]; then
2526
issueNumber="\"--issue-number=$issueNumber\","
2627
fi
2728

29+
regressPrec=""
30+
if [ -n "$regressComp" ]; then
31+
regressComp="\"--regress-compare=$regressComp\","
32+
regressPrec="\"--regress-precision=$precision\","
33+
fi
34+
2835
resultCountQuery="select version, result, count(*) as total from results where result != 'skipped' group by result;"
2936
testCountQuery="select version, count(*) as total_tests from results where result != 'skipped';"
3037
correctnessQuery="select ROUND(100.0 * (cast(ok_results.total as decimal) / (cast(all_results.total as decimal) + .000001)), $precision) as correctness_percentage from (select count(*) as total from results where result = 'ok') as ok_results join (select count(*) as total from results where result != 'skipped') as all_results"
@@ -72,6 +79,8 @@ echo '
7279
"--version='$version'",
7380
'"$nomsBinFormat"'
7481
'"$issueNumber"'
82+
'"$regressComp"'
83+
'"$regressPrec"'
7584
"--bucket=sql-correctness-github-actions-results",
7685
"--region=us-west-2",
7786
"--results-dir='$timeprefix'",

.github/scripts/sql-correctness/run-correctness.sh

+9-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ if [ -z "$MODE" ]; then
3232
exit 1
3333
fi
3434

35+
if [ -n "$PR_NUMBER" ]; then
36+
if [ -z "$REGRESS_COMP" ]; then
37+
echo "Must set REGRESS_COMP for PR correctness comparisons"
38+
exit 1
39+
fi
40+
fi
41+
3542
# use first 8 characters of VERSION to differentiate
3643
# jobs
3744
short=${VERSION:0:8}
@@ -71,7 +78,8 @@ source \
7178
"$actorprefix" \
7279
"$format" \
7380
"$NOMS_BIN_FORMAT" \
74-
"$issuenumber" > job.json
81+
"$issuenumber" \
82+
"$REGRESS_COMP" > job.json
7583

7684
# delete existing job with same name if this is a pr job
7785
if [ -n "$PR_NUMBER" ]; then

.github/workflows/k8s-sql-correctness.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
- name: Create SQL Correctness K8s Job
4040
run: ./.github/scripts/sql-correctness/run-correctness.sh
4141
env:
42+
REGRESS_COMP: ${{ github.event.client_payload.regress_comp }}
4243
PR_NUMBER: ${{ github.event.client_payload.issue_number }}
4344
VERSION: ${{ github.event.client_payload.version }}
4445
MODE: ${{ github.event.client_payload.mode }}
+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
on:
2+
push:
3+
branches:
4+
- 'db/compare'
5+
6+
jobs:
7+
report-pull-request:
8+
runs-on: ubuntu-22.04
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v3
12+
- name: Configure AWS Credentials
13+
uses: aws-actions/[email protected]
14+
with:
15+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
16+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
17+
aws-region: us-west-2
18+
- name: Remove Passing Labels if regression detected
19+
uses: actions/github-script@v6
20+
with:
21+
github-token: ${{ secrets.GITHUB_TOKEN }}
22+
script: |
23+
const { ACTOR, ISSUE_NUMBER, GITHUB_WORKSPACE } = process.env;
24+
const issue_number = parseInt(ISSUE_NUMBER, 10);
25+
const { owner, repo } = context.repo;
26+
try {
27+
const res = await github.rest.issues.listLabelsOnIssue({
28+
issue_number,
29+
owner,
30+
repo,
31+
});
32+
33+
if (res.data) {
34+
const labels = res.data;
35+
36+
for (const label of labels) {
37+
console.log("labels is:", label.name);
38+
}
39+
}
40+
41+
} catch(e) {
42+
console.error(e)
43+
}
44+
env:
45+
ACTOR: ${{ github.event.client_payload.actor }}
46+
ISSUE_NUMBER: '7309'
47+
LABEL: 'correctness_approved'

.github/workflows/pull-report.yaml

+24
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,27 @@ jobs:
4848
ACTOR: ${{ github.event.client_payload.actor }}
4949
ISSUE_NUMBER: ${{ github.event.client_payload.issue_number }}
5050
FORMAT: ${{ github.event.client_payload.noms_bin_format }}
51+
- name: Remove Passing Labels if regression detected
52+
uses: actions/github-script@v6
53+
with:
54+
github-token: ${{ secrets.GITHUB_TOKEN }}
55+
script: |
56+
const { ACTOR, ISSUE_NUMBER, GITHUB_WORKSPACE } = process.env;
57+
const issue_number = parseInt(ISSUE_NUMBER, 10);
58+
const { owner, repo } = context.repo;
59+
try {
60+
const labels = github.rest.issues.createComment({
61+
issue_number,
62+
owner,
63+
repo,
64+
body: `@${ACTOR} ${FORMAT}\n ${data}`
65+
});
66+
} catch(e) {
67+
console.error(e)
68+
}
69+
env:
70+
ACTOR: ${{ github.event.client_payload.actor }}
71+
ISSUE_NUMBER: ${{ github.event.client_payload.issue_number }}
72+
# if this is a regression
73+
# first remove all correctness_approved labels from the pr
74+
# if this

.github/workflows/sql-regressions.yaml

+12-1
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,20 @@ jobs:
99
name: Set Version and Actor
1010
runs-on: ubuntu-22.04
1111
outputs:
12+
regress_comp: ${{ steps.regress-comp.outputs.regress_comp }}
1213
version: ${{ steps.set-vars.outputs.version }}
1314
actor: ${{ steps.set-vars.outputs.actor }}
1415
steps:
16+
- name: Checkout PR HEAD REF
17+
uses: actions/checkout@v3
18+
with:
19+
ref: ${{ github.base_ref }}
20+
- name: Get Current Correctness
21+
id: regress-comp
22+
working-directory: ./.github/scripts/sql-correctness
23+
run: |
24+
out=$(cat current_correctness.txt)
25+
echo "regress_comp=$out" >> $GITHUB_OUTPUT
1526
- name: Checkout PR HEAD REF
1627
uses: actions/checkout@v3
1728
with:
@@ -41,4 +52,4 @@ jobs:
4152
with:
4253
token: ${{ secrets.REPO_ACCESS_TOKEN }}
4354
event-type: sql-correctness
44-
client-payload: '{"issue_number": "${{ steps.get_pull_number.outputs.pull_number }}", "version": "${{ needs.set-version-actor.outputs.version }}", "mode": "release", "actor": "${{ needs.set-version-actor.outputs.actor }}", "actor_email": "${{ needs.set-version-actor.outputs.actor_email }}", "template_script": "./.github/scripts/sql-correctness/get-dolt-correctness-job-json.sh"}'
55+
client-payload: '{"issue_number": "${{ steps.get_pull_number.outputs.pull_number }}", "regress_comp": "${{ needs.set-version-actor.outputs.regress_comp }}", "version": "${{ needs.set-version-actor.outputs.version }}", "mode": "release", "actor": "${{ needs.set-version-actor.outputs.actor }}", "actor_email": "${{ needs.set-version-actor.outputs.actor_email }}", "template_script": "./.github/scripts/sql-correctness/get-dolt-correctness-job-json.sh"}'

0 commit comments

Comments
 (0)