Check Dockerfile Sanity workflow (harbor-framework/terminal-bench)
The Check Dockerfile Sanity workflow from harbor-framework/terminal-bench, 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 Dockerfile Sanity workflow from the harbor-framework/terminal-bench 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 Dockerfile Sanity
on:
pull_request:
paths:
- "tasks/**/Dockerfile"
- "adapters/**/Dockerfile"
push:
branches:
- main
workflow_dispatch: # Allow manual triggering
jobs:
check-dockerfile-sanity:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Dockerfile sanity (pinned dependencies)
run: |
echo "Running Dockerfile sanity check..."
echo "This check ensures that apt install commands don't pin dependency versions"
echo "Pinned versions can cause issues when packages are removed or updated"
echo ""
# Always check all Dockerfiles for this sanity check
# This is a quick check that should run on all files
ALL_DOCKERFILES=$(find tasks adapters -name "Dockerfile" -type f 2>/dev/null || true)
if [ -z "$ALL_DOCKERFILES" ]; then
echo "No Dockerfiles found in tasks or adapters directories"
exit 0
fi
echo "Found $(echo "$ALL_DOCKERFILES" | wc -l) Dockerfiles to check"
echo ""
./scripts_bash/check-dockerfile-sanity.sh $ALL_DOCKERFILES
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: Check Dockerfile Sanity on: pull_request: paths: - "tasks/**/Dockerfile" - "adapters/**/Dockerfile" push: branches: - main workflow_dispatch: # Allow manual triggering concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: check-dockerfile-sanity: timeout-minutes: 30 runs-on: latchkey-small steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check Dockerfile sanity (pinned dependencies) run: | echo "Running Dockerfile sanity check..." echo "This check ensures that apt install commands don't pin dependency versions" echo "Pinned versions can cause issues when packages are removed or updated" echo "" # Always check all Dockerfiles for this sanity check # This is a quick check that should run on all files ALL_DOCKERFILES=$(find tasks adapters -name "Dockerfile" -type f 2>/dev/null || true) if [ -z "$ALL_DOCKERFILES" ]; then echo "No Dockerfiles found in tasks or adapters directories" exit 0 fi echo "Found $(echo "$ALL_DOCKERFILES" | wc -l) Dockerfiles to check" echo "" ./scripts_bash/check-dockerfile-sanity.sh $ALL_DOCKERFILES
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.
What Latchkey heals here
This workflow has steps that commonly fail on transient issues (network, registries, flaky browsers). On Latchkey managed runners they are detected, retried, and self-healed instead of failing your build:
- Dependency installs
This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.