AgentSkillsCN

build-test-auto

自动构建和测试代码更改。每当代码修改、测试失败、创建拉取请求前或验证代码质量时使用。

SKILL.md
--- frontmatter
name: build-test-auto
description: Automatically builds and tests code changes. Use whenever code is modified, tests fail, before creating pull requests, or when verifying code quality.
allowed-tools: Bash, Read, Glob, Grep, Edit

Automated Build & Test Workflow

Overview

This skill provides automated build and test execution for various project types. It is triggered automatically when code changes are made or when tests need verification.

Quick Reference

Project Detection & Commands

bash
# JavaScript/Node.js
if [ -f "package.json" ]; then
    npm install && npm run build && npm test
fi

# Python
if [ -f "pyproject.toml" ] || [ -f "setup.py" ]; then
    pip install -e . && python -m pytest
fi

# Rust
if [ -f "Cargo.toml" ]; then
    cargo build && cargo test
fi

# Go
if [ -f "go.mod" ]; then
    go build ./... && go test ./...
fi

# Java Maven
if [ -f "pom.xml" ]; then
    mvn compile && mvn test
fi

# Java/Kotlin Gradle
if [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
    ./gradlew build && ./gradlew test
fi

# Ruby
if [ -f "Gemfile" ]; then
    bundle install && bundle exec rspec
fi

# Make-based
if [ -f "Makefile" ]; then
    make && make test
fi

Workflow Steps

1. Pre-Build Checks

  • Verify dependencies are installed
  • Check for required tools (use mise if available)
  • Validate configuration files

2. Build Phase

  • Run the build command
  • Capture all output
  • Stop immediately on build failure
  • Show exact error location

3. Test Phase

  • Run the full test suite
  • Capture test output with verbose mode
  • Document all failures

4. Failure Analysis

For each failure:

  1. Identify the test name and file
  2. Show the exact error message
  3. Display relevant stack trace
  4. Analyze root cause

5. Fix & Verify

  • Apply minimal fixes
  • Re-run tests to confirm
  • Report final status

Linting

After tests pass, also run linting:

Project TypeLint Command
Node.jsnpm run lint
Pythonruff check . or flake8
Rustcargo clippy
Gogo vet ./...

Tips

  • Use mise to install missing runtimes
  • Check .nvmrc, .python-version, .tool-versions for version requirements
  • Run lint and build before pushing to remote