Skip to content

skills: guard example-led opt-ins #77

skills: guard example-led opt-ins

skills: guard example-led opt-ins #77

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
test-matrix:
name: Dockerfile.test-matrix (ubuntu:24.04)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Build + run install stages
run: docker build -f Dockerfile.test-matrix -t dotfiles-test .
# Auth-gated tools (Claude OAuth, Codex OAuth, gh PAT) deliberately
# not exercised here. They require interactive auth that lives outside
# CI. Document the omission rather than hide it:
- name: Note on auth-gated tools
run: |
echo "Skipped (require interactive auth, not run in CI):"
echo " - Claude Code CLI install + login"
echo " - Codex CLI install + login"
echo " - gh-with-PAT push flows"
echo "These are verified manually after a fresh install — see README.md."
shellcheck:
name: shellcheck bin/*.sh
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- run: sudo apt-get update -qq && sudo apt-get install -y shellcheck
- run: shellcheck --severity=warning bin/*.sh
manifest-parse:
name: manifest/skills.yaml parses
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- run: |
python3 -c "
import yaml, sys
m = yaml.safe_load(open('manifest/skills.yaml'))
assert m['version'] == 1, 'version pin lost'
for s in m['skills']:
for key in ('name', 'description', 'source', 'install_to'):
assert key in s, f'{s.get(\"name\", \"?\")} missing {key}'
assert s['source']['type'] in ('subpath', 'git'), s['name']
print(f'manifest OK: {len(m[\"skills\"])} skills')
"
worklog-skill:
name: worklog skill — shellcheck + ruff + fixture-vault smoke
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: install shellcheck + ruff + yaml
run: |
sudo apt-get update -qq
sudo apt-get install -y shellcheck jq
pip install --quiet ruff pyyaml
- name: set git identity for fixture vault commits
run: |
git config --global user.email "ci@cheshirecode.test"
git config --global user.name "ci-fixture"
git config --global init.defaultBranch main
- name: run worklog-skill test mode
run: bash tests/run.sh worklog-skill