Skip to content
Latchkey

Cleanup workflow (databus23/helm-diff)

The Cleanup workflow from databus23/helm-diff, explained and optimized by Latchkey.

C

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.

Grade your own workflow free or run it on Latchkey →
Source: databus23/helm-diff.github/workflows/cleanup.yamlLicense Apache-2.0View source

What it does

This is the Cleanup workflow from the databus23/helm-diff 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

workflow (.yml)
---
name: Cleanup

on:
  pull_request:
    types:
      - closed

jobs:
  cleanup-cache:
    runs-on: ubuntu-latest
    steps:
      - name: 'Cleanup PR cache'
        run: |
          gh extension install actions/gh-actions-cache

          REPO="${{ github.repository }}"
          BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"

          echo "Fetching list of cache key"
          cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )

          ## Setting this to not fail the workflow while deleting cache keys.
          set +e
          echo "Deleting caches..."
          for cacheKey in $cacheKeysForPR
          do
            gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
          done
          echo "Done"
        shell: bash
        env:
          GH_TOKEN: ${{ github.token }}

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

---
name: Cleanup
 
on:
  pull_request:
    types:
      - closed
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  cleanup-cache:
    timeout-minutes: 30
    runs-on: latchkey-small
    steps:
      - name: 'Cleanup PR cache'
        run: |
          gh extension install actions/gh-actions-cache
 
          REPO="${{ github.repository }}"
          BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
 
          echo "Fetching list of cache key"
          cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
 
          ## Setting this to not fail the workflow while deleting cache keys.
          set +e
          echo "Deleting caches..."
          for cacheKey in $cacheKeysForPR
          do
            gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
          done
          echo "Done"
        shell: bash
        env:
          GH_TOKEN: ${{ github.token }}
 

What changed

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.