ci-all

GitHub

自动化执行本地测试、类型检查、代码推送并生成CI流水线链接,覆盖Python/Node/Rust多栈,支持GitLab和GitHub,简化PR前准备流程。

examples/skills/ci-all/SKILL.md FlorianBruniaux/claude-code-ultimate-guide

Trigger Scenarios

需要提交PR前验证代码质量 希望自动完成测试、推送及获取CI状态

Install

npx skills add FlorianBruniaux/claude-code-ultimate-guide --skill ci-all -g -y
More Options

Non-standard path

npx skills add https://github.com/FlorianBruniaux/claude-code-ultimate-guide/tree/main/examples/skills/ci-all -g -y

Use without installing

npx skills use FlorianBruniaux/claude-code-ultimate-guide@ci-all

指定 Agent (Claude Code)

npx skills add FlorianBruniaux/claude-code-ultimate-guide --skill ci-all -a claude-code -g -y

安装 repo 全部 skill

npx skills add FlorianBruniaux/claude-code-ultimate-guide --all -g -y

预览 repo 内 skill

npx skills add FlorianBruniaux/claude-code-ultimate-guide --list

SKILL.md

Frontmatter
{
    "name": "ci-all",
    "model": "haiku",
    "effort": "medium",
    "description": "Full CI pipeline: run local tests, type check, push branch, and return the pipeline URL. The only command you need before opening a PR.",
    "allowed-tools": [
        "Bash"
    ],
    "argument-hint": "[--skip-tests | --e2e]",
    "disable-model-invocation": true
}

/ci:all: Full CI before PR

Runs everything in order: local tests → type check → push → pipeline URL.

One /ci:all replaces: manual tests + git push + copying the pipeline URL.

Stack detection

if [ -f "uv.lock" ]; then STACK="python"
elif [ -f "pnpm-lock.yaml" ]; then STACK="node"
elif [ -f "package-lock.json" ]; then STACK="node-npm"
elif [ -f "Cargo.toml" ]; then STACK="rust"
fi

Step 1: Local tests (blocking)

Python (uv/pytest):

uv run pytest --tb=short -q
# Failure → STOP + print failing tests

Node (pnpm/vitest):

pnpm vitest run
pnpm tsc --noEmit
# Failure → STOP

Rust:

cargo test --quiet 2>&1

If --skip-tests is passed → skip to step 2.

Step 2: Push + pipeline

BRANCH=$(git branch --show-current)

# Verify commits exist to push
AHEAD=$(git rev-list --count origin/$BRANCH..HEAD 2>/dev/null || echo "1")
if [ "$AHEAD" = "0" ]; then
  echo "Branch already up to date on origin."
else
  git push origin "$BRANCH"
fi

Step 3: Pipeline URL

GitLab CI

REMOTE=$(git remote get-url origin)
WEB_URL=$(echo "$REMOTE" | sed 's/git@gitlab\.com:/https:\/\/gitlab.com\//' | sed 's/\.git$//')
echo "Pipeline: $WEB_URL/-/pipelines?ref=$BRANCH"

# Optional: live status via glab CLI
if command -v glab &>/dev/null; then
  sleep 3
  glab ci status --branch "$BRANCH" 2>/dev/null || true
fi

GitHub Actions

REMOTE=$(git remote get-url origin)
WEB_URL=$(echo "$REMOTE" | sed 's/git@github\.com:/https:\/\/github.com\//' | sed 's/\.git$//')
echo "Actions: $WEB_URL/actions?query=branch%3A$BRANCH"

# Optional: live status via gh CLI
if command -v gh &>/dev/null; then
  sleep 5
  gh run list --branch "$BRANCH" --limit 3 2>/dev/null || true
fi

Expected output

CI: my-app (Node/Vitest)
──────────────────────────

① Local tests
  ✅ 47 passed in 8.2s

② Type check
  ✅ No errors

③ Push
  ✅ origin/feat/my-feature

④ Pipeline
  🔗 https://gitlab.com/org/my-app/-/pipelines?ref=feat/my-feature

Next step: open a PR with /pr or directly on GitLab/GitHub.

If tests fail:

CI: my-api (Python/pytest)
────────────────────────────

① Local tests
  ❌ 2 failed

  FAILED tests/test_orders.py::TestOrderService::test_refund_validation
  AssertionError: expected 400, got 500

→ Fix tests before pushing. Pipeline not triggered.

Usage

/ci:all
/ci:all --skip-tests    # push without re-running tests
/ci:all --e2e           # include E2E tests (if configured)

Target: $ARGUMENTS

Version History

  • fa57065 Current 2026-07-25 10:17

Same Skill Collection

.agents/skills/guide-recap/SKILL.md
.agents/skills/self-assessment/SKILL.md
.agents/skills/source-command-audit-prose/SKILL.md
.agents/skills/source-command-audit-whitepapers/SKILL.md
.agents/skills/source-command-ccguide-daily/SKILL.md
.agents/skills/source-command-ccguide-diff-docs/SKILL.md
.agents/skills/source-command-ccguide-init-docs/SKILL.md
.agents/skills/source-command-ccguide-refresh-docs/SKILL.md
.agents/skills/source-command-methodology-advisor/SKILL.md
.agents/skills/source-command-track-mentions/SKILL.md
.agents/skills/source-command-update-infos-release/SKILL.md
.claude/skills/self-assessment/SKILL.md
examples/skills/audit-agents-skills/SKILL.md
examples/skills/audit-codebase/SKILL.md
examples/skills/autoresearch/SKILL.md
examples/skills/canary/SKILL.md
examples/skills/catchup/SKILL.md
examples/skills/ccboard/SKILL.md
examples/skills/check-cache-bugs/SKILL.md
examples/skills/ci-pipeline/SKILL.md
examples/skills/ci-status/SKILL.md
examples/skills/ci-tests/SKILL.md
examples/skills/commit/SKILL.md
examples/skills/cyber-defense-team/SKILL.md
examples/skills/design-patterns/SKILL.md
examples/skills/diagnose/SKILL.md
examples/skills/eval-agents/SKILL.md
examples/skills/eval-hooks/SKILL.md
examples/skills/eval-rules/SKILL.md
examples/skills/eval-skills/SKILL.md
examples/skills/explain/SKILL.md
examples/skills/git-ai-archaeology/SKILL.md
examples/skills/git-worktree-clean/SKILL.md
examples/skills/git-worktree-remove/SKILL.md
examples/skills/git-worktree-status/SKILL.md
examples/skills/git-worktree/SKILL.md
examples/skills/guide-recap/SKILL.md
examples/skills/handoff-create/SKILL.md
examples/skills/handoff-resume/SKILL.md
examples/skills/handoff-update/SKILL.md
examples/skills/investigate/SKILL.md
examples/skills/issue-triage/SKILL.md
examples/skills/land-and-deploy/SKILL.md
examples/skills/landing-page-generator/SKILL.md
examples/skills/learn-alternatives/SKILL.md
examples/skills/learn-quiz/SKILL.md
examples/skills/learn-teach/SKILL.md
examples/skills/mcp-integration-reference/SKILL.md
examples/skills/methodology-advisor/SKILL.md

Metadata

Files
0
Version
a8d88fe
Hash
873b0b1f
Indexed
2026-07-25 10:17

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 03:10
浙ICP备14020137号-1 $방문자$