CI/CD (main - no deployment) workflow (carpentries/amy)
The CI/CD (main - no deployment) workflow from carpentries/amy, explained and optimized by Latchkey.
C
CI health: C - fair
Run this on Latchkey for self-healing, caching, and up to 58% lower cost.
Grade your own workflow free or run it on Latchkey →What it does
This is the CI/CD (main - no deployment) workflow from the carpentries/amy 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
workflow (.yml)
# CI/CD for main branch
name: CI/CD (main - no deployment)
on:
push:
branches: [ main ]
jobs:
accessibility:
uses: ./.github/workflows/incl_accessibility.yml
lint:
uses: ./.github/workflows/incl_linter.yml
test:
uses: ./.github/workflows/incl_test.yml
needs: lint
build_container:
uses: ./.github/workflows/incl_build_container_image.yml
needs: test
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
# CI/CD for main branch name: CI/CD (main - no deployment) on: push: branches: [ main ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: accessibility: timeout-minutes: 30 uses: ./.github/workflows/incl_accessibility.yml lint: timeout-minutes: 30 uses: ./.github/workflows/incl_linter.yml test: timeout-minutes: 30 uses: ./.github/workflows/incl_test.yml needs: lint build_container: timeout-minutes: 30 uses: ./.github/workflows/incl_build_container_image.yml needs: test
What changed
- 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 4 jobs per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.