Copilot Setup Steps workflow (mpieniak01/Venom)
The Copilot Setup Steps workflow from mpieniak01/Venom, explained and optimized by Latchkey.
CI health: A - excellent
Point runs-on at Latchkey and get run de-duplication, self-healing for flaky steps, and up to 58% lower cost, applied automatically.
What it does
This is the Copilot Setup Steps workflow from the mpieniak01/Venom repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.
Below, Latchkey shows a faster, safer version produced by its optimization engine.
The workflow
name: "Copilot Setup Steps"
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
# This exact job name is required by GitHub Copilot coding agent.
copilot-setup-steps:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: "20"
cache: "npm"
cache-dependency-path: web-next/package-lock.json
- name: Bootstrap Python environment
shell: bash
run: |
set -euo pipefail
test -f .venv/bin/activate || python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -r requirements.txt
python -m pip install -r requirements-ci-lite.txt
.venv/bin/python -m pip check
- name: Bootstrap frontend dependencies
shell: bash
run: |
set -euo pipefail
npm --prefix web-next ci
- name: Verify critical tools
shell: bash
run: |
set -euo pipefail
python3 --version
.venv/bin/python --version
node --version
npm --version
npm --prefix web-next ls tsx --depth=0
- name: Verify repo preflight
shell: bash
run: |
set -euo pipefail
make ci-lite-preflight
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: "Copilot Setup Steps" on: workflow_dispatch: push: paths: - .github/workflows/copilot-setup-steps.yml pull_request: paths: - .github/workflows/copilot-setup-steps.yml concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: # This exact job name is required by GitHub Copilot coding agent. copilot-setup-steps: runs-on: latchkey-small timeout-minutes: 30 permissions: contents: read steps: - name: Checkout uses: actions/checkout@v5 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.12" - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: "20" cache: "npm" cache-dependency-path: web-next/package-lock.json - name: Bootstrap Python environment shell: bash run: | set -euo pipefail test -f .venv/bin/activate || python3 -m venv .venv source .venv/bin/activate python -m pip install -U pip python -m pip install -r requirements.txt python -m pip install -r requirements-ci-lite.txt .venv/bin/python -m pip check - name: Bootstrap frontend dependencies shell: bash run: | set -euo pipefail npm --prefix web-next ci - name: Verify critical tools shell: bash run: | set -euo pipefail python3 --version .venv/bin/python --version node --version npm --version npm --prefix web-next ls tsx --depth=0 - name: Verify repo preflight shell: bash run: | set -euo pipefail make ci-lite-preflight
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.
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.