CI Check workflow (mui/material-ui)
The CI Check workflow from mui/material-ui, 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 Check workflow from the mui/material-ui 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)
# This workflow is a workaround for ci.yml to bypass the github checks
#
# Ref: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: CI Check
on:
push:
branches-ignore:
# should sync with ci.yml as a workaround to bypass github checks
- master
- next
- v*.x
pull_request:
paths:
# should sync with ci.yml as a workaround to bypass github checks
- 'docs/**'
permissions: {}
jobs:
continuous-releases:
name: Continuous releases
uses: mui/mui-public/.github/workflows/ci-base.yml@9033c846aecf0e1454f13486af685d93269456e9 # master
test-dev:
if: ${{ github.actor != 'l10nbot' }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- run: 'echo "No build required"'
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
# This workflow is a workaround for ci.yml to bypass the github checks # # Ref: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks name: CI Check on: push: branches-ignore: # should sync with ci.yml as a workaround to bypass github checks - master - next - v*.x pull_request: paths: # should sync with ci.yml as a workaround to bypass github checks - 'docs/**' permissions: {} concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: continuous-releases: timeout-minutes: 30 name: Continuous releases uses: mui/mui-public/.github/workflows/ci-base.yml@9033c846aecf0e1454f13486af685d93269456e9 # master test-dev: timeout-minutes: 30 if: ${{ github.actor != 'l10nbot' }} runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, windows-latest, ubuntu-latest] steps: - run: 'echo "No build required"'
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 2 jobs (4 with the matrix expanded) per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.