Files
greptimedb/.github/workflows/query-regression-comment.yml
discord9 12f83828b1 feat: add Prom remote-write query regression scenario (#8413)
* feat: add Prom remote-write query regression scenario

Signed-off-by: discord9 <discord9@163.com>

* test: add high-cardinality remote-write query case

Signed-off-by: discord9 <discord9@163.com>

* feat: chunk remote-write query regression loads

Signed-off-by: discord9 <discord9@163.com>

* test: use multi-day remote-write regression case

Signed-off-by: discord9 <discord9@163.com>

* fix: address query regression review comments

Signed-off-by: discord9 <discord9@163.com>

* ci: allow large query regression comments

Signed-off-by: discord9 <discord9@163.com>

---------

Signed-off-by: discord9 <discord9@163.com>
2026-07-07 07:58:56 +00:00

84 lines
2.8 KiB
YAML

name: Query Regression Comment
on:
workflow_run:
workflows: ["Query Regression"]
types: [completed]
permissions:
contents: read
actions: read
pull-requests: write
jobs:
comment:
if: >-
${{ github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion != 'cancelled' &&
github.event.workflow_run.conclusion != 'skipped' }}
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout trusted scripts
uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}
persist-credentials: false
- name: Locate query regression comment artifact
id: artifact
uses: actions/github-script@v7
with:
script: |
const { owner, repo } = context.repo;
const run_id = context.payload.workflow_run.id;
const { data } = await github.rest.actions.listWorkflowRunArtifacts({
owner,
repo,
run_id,
per_page: 100,
});
const artifact = data.artifacts.find(
item => item.name === 'query-regression-comment' && !item.expired
);
if (!artifact) {
core.info('No query-regression-comment artifact found; skipping.');
core.setOutput('found', 'false');
return;
}
core.setOutput('found', 'true');
core.setOutput('id', String(artifact.id));
- name: Download query regression comment artifact
id: download
if: ${{ steps.artifact.outputs.found == 'true' }}
uses: actions/download-artifact@v4
continue-on-error: true
with:
artifact-ids: ${{ steps.artifact.outputs.id }}
path: query-regression-comment
repository: ${{ github.repository }}
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}
merge-multiple: true
- name: Validate PR metadata and prepare comment
id: validate
if: ${{ steps.download.outcome == 'success' }}
uses: actions/github-script@v7
env:
WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }}
WORKFLOW_RUN_ATTEMPT: ${{ github.event.workflow_run.run_attempt }}
with:
script: |
const validate = require('./.github/scripts/query-regression-comment.cjs');
await validate({ github, context, core });
- name: Post sticky PR comment
if: ${{ steps.validate.outputs.should_post == 'true' }}
uses: marocchino/sticky-pull-request-comment@v2
with:
header: query-regression-report
number: ${{ steps.validate.outputs.pr_number }}
path: ${{ steps.validate.outputs.summary_path }}