Release Skills workflow (himself65/finance-skills)
The Release Skills workflow from himself65/finance-skills, 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.
What it does
This is the Release Skills workflow from the himself65/finance-skills 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)
name: Release Skills
on:
push:
tags: ['v*']
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Extract version from tag
id: version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Zip each skill
run: |
mkdir -p dist
for plugin_dir in plugins/*/; do
plugin_name=$(basename "$plugin_dir")
for skill_dir in "${plugin_dir}skills/"/*/; do
[ -d "$skill_dir" ] || continue
skill_name=$(basename "$skill_dir")
(cd "${plugin_dir}skills" && zip -r "../../../dist/${skill_name}.zip" "$skill_name/")
echo "Zipped: $skill_name (from $plugin_name)"
done
done
- name: Create release
run: |
gh release create "${{ github.ref_name }}" dist/*.zip \
--title "v${{ steps.version.outputs.version }}" \
--generate-notes \
--latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: Release Skills on: push: tags: ['v*'] permissions: contents: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: release: timeout-minutes: 30 runs-on: latchkey-small steps: - uses: actions/checkout@v4 - name: Extract version from tag id: version run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" - name: Zip each skill run: | mkdir -p dist for plugin_dir in plugins/*/; do plugin_name=$(basename "$plugin_dir") for skill_dir in "${plugin_dir}skills/"/*/; do [ -d "$skill_dir" ] || continue skill_name=$(basename "$skill_dir") (cd "${plugin_dir}skills" && zip -r "../../../dist/${skill_name}.zip" "$skill_name/") echo "Zipped: $skill_name (from $plugin_name)" done done - name: Create release run: | gh release create "${{ github.ref_name }}" dist/*.zip \ --title "v${{ steps.version.outputs.version }}" \ --generate-notes \ --latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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.
This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.