Check Operator Manifests workflow (odigos-io/odigos)
The Check Operator Manifests workflow from odigos-io/odigos, explained and optimized by Latchkey.
CI health: C - fair
Point runs-on at Latchkey and get run de-duplication, job timeouts, self-healing for flaky steps, and up to 58% lower cost, applied automatically.
What it does
This is the Check Operator Manifests workflow from the odigos-io/odigos 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: Check Operator Manifests
on:
pull_request:
jobs:
check-operator-manifests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.26.4"
- name: Check operator manifests are up to date
id: check-manifests
run: |
cd operator
USE_IMAGE_DIGESTS=true make generate manifests
# Check if there are any changes
if ! git diff --quiet; then
echo "::error::Please run cd operator/ && USE_IMAGE_DIGESTS=true make generate manifests"
git diff
exit 1
fi
- name: Add operator owners as reviewers if check-operator-manifests failed
if: failure() && steps.check-manifests.outcome == 'failure'
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const ownersText = fs.readFileSync('operator/OWNERS', 'utf8');
const usernames = ownersText.trim().split('\n').filter(line => line.trim() !== '');
github.rest.pulls.requestReviewers({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
reviewers: usernames
});
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: Check Operator Manifests on: pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: check-operator-manifests: timeout-minutes: 30 runs-on: latchkey-small steps: - uses: actions/checkout@v5 with: fetch-depth: 0 - name: Setup Go uses: actions/setup-go@v6 with: go-version: "1.26.4" - name: Check operator manifests are up to date id: check-manifests run: | cd operator USE_IMAGE_DIGESTS=true make generate manifests # Check if there are any changes if ! git diff --quiet; then echo "::error::Please run cd operator/ && USE_IMAGE_DIGESTS=true make generate manifests" git diff exit 1 fi - name: Add operator owners as reviewers if check-operator-manifests failed if: failure() && steps.check-manifests.outcome == 'failure' uses: actions/github-script@v7 with: script: | const fs = require('fs'); const ownersText = fs.readFileSync('operator/OWNERS', 'utf8'); const usernames = ownersText.trim().split('\n').filter(line => line.trim() !== ''); github.rest.pulls.requestReviewers({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, reviewers: usernames });
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. - Cancel superseded runs when a branch or PR gets a newer push.
- 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.