Comment on pull request without race conditions workflow (gradio-app/gradio)
The Comment on pull request without race conditions workflow from gradio-app/gradio, explained and optimized by Latchkey.
CI health: A - excellent
Point runs-on at Latchkey and get job timeouts, self-healing for flaky steps, and up to 58% lower cost, applied automatically.
What it does
This is the Comment on pull request without race conditions workflow from the gradio-app/gradio repository, a real project running GitHub Actions. It is shown here with attribution under its Apache-2.0 license.
Below, Latchkey shows a faster, safer version produced by its optimization engine.
The workflow
name: Comment on pull request without race conditions
on:
workflow_call:
inputs:
pr_number:
type: string
message:
required: true
type: string
tag:
required: false
type: string
default: "previews"
additional_text:
required: false
type: string
default: ""
secrets:
gh_token:
required: true
jobs:
comment:
environment: comment_pr
concurrency:
group: ${{inputs.pr_number || inputs.tag}}
runs-on: ubuntu-latest
steps:
- name: comment on pr
uses: "gradio-app/github/actions/comment-pr@main"
with:
gh_token: ${{ secrets.gh_token }}
tag: ${{ inputs.tag }}
pr_number: ${{ inputs.pr_number}}
message: ${{ inputs.message }}
additional_text: ${{ inputs.additional_text }}
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: Comment on pull request without race conditions on: workflow_call: inputs: pr_number: type: string message: required: true type: string tag: required: false type: string default: "previews" additional_text: required: false type: string default: "" secrets: gh_token: required: true jobs: comment: timeout-minutes: 30 environment: comment_pr concurrency: group: ${{inputs.pr_number || inputs.tag}} runs-on: latchkey-small steps: - name: comment on pr uses: "gradio-app/github/actions/comment-pr@main" with: gh_token: ${{ secrets.gh_token }} tag: ${{ inputs.tag }} pr_number: ${{ inputs.pr_number}} message: ${{ inputs.message }} additional_text: ${{ inputs.additional_text }}
What changed
- Run on Latchkey managed runners with one line (
runs-on), which apply the fixes below automatically and self-heal transient failures. This example useslatchkey-small; pick the runner size that fits the job. - Add a job timeout so a hung step cannot burn hours of runner time.
This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.