Files
mlflow--mlflow/.github/workflows/cross-version-test-runner.yml
2026-07-13 13:22:34 +08:00

54 lines
1.8 KiB
YAML

name: Cross version test runner
on:
issue_comment:
types: [created]
defaults:
run:
shell: bash
permissions: {}
jobs:
run:
runs-on: ubuntu-slim
timeout-minutes: 10
if: >
github.event.issue.pull_request &&
startsWith(github.event.comment.body, '/cvt') &&
contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association) &&
contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
permissions:
pull-requests: write
actions: write
steps:
- name: Dispatch cross-version tests
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.issue.number }}
COMMENT_BODY: ${{ github.event.comment.body }}
run: |
flavors=$(printf '%s' "$COMMENT_BODY" | sed -nE '1 s|^/cvt[[:space:]]+(.+)$|\1|p')
if [ -z "$flavors" ]; then
echo "No flavors specified; skipping."
exit 0
fi
pr_json=$(gh api "repos/$GH_REPO/pulls/$PR_NUMBER")
base_ref=$(jq -r .base.ref <<< "$pr_json")
merge_sha=$(jq -r .merge_commit_sha <<< "$pr_json")
payload=$(jq -n \
--arg ref "$base_ref" \
--arg merge_sha "$merge_sha" \
--arg flavors "$flavors" \
--arg repo_full "$GH_REPO" \
'{ref: $ref, return_run_details: true, inputs: {repository: $repo_full, ref: $merge_sha, flavors: $flavors}}')
run_url=$(printf '%s' "$payload" | gh api -X POST \
"repos/$GH_REPO/actions/workflows/cross-version-tests.yml/dispatches" \
--input - --jq .html_url)
gh pr comment "$PR_NUMBER" --body "Cross-version test run started: $run_url"