Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.
中文简介正在准备中。当前显示原文说明。
Set up GitHub Actions CI pipeline with test, lint, type-check, and build jobs for a Node.js/TypeScript project. Includes output grouping, error annotations, and job summary patterns.
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Set up a comprehensive CI pipeline for a Node.js/TypeScript project with GitHub Actions output integration.
Create .github/workflows/ci.yml:
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm ts:check
- run: pnpm lint
- run: pnpm test
- run: pnpm build
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm format:check
Adapt branch names, package manager (pnpm/npm/yarn), and script names to match the project.
Group related output in CI logs for cleaner display:
function startGroup(label: string): void {
if (process.env['GITHUB_ACTIONS']) {
console.error(`::group::${label}`)
}
}
function endGroup(): void {
if (process.env['GITHUB_ACTIONS']) {
console.error('::endgroup::')
}
}
// Usage:
startGroup(`Processing: ${taskName}`)
await doWork()
endGroup()
Surface errors as inline annotations on the PR diff:
function annotateError(message: string, file?: string, line?: number): void {
if (process.env['GITHUB_ACTIONS']) {
const location = file ? ` file=${file}${line ? `,line=${line}` : ''}` : ''
console.error(`::error${location}::${message}`)
}
}
Write a markdown summary after execution:
function writeSummary(markdown: string): void {
const summaryFile = process.env['GITHUB_STEP_SUMMARY']
if (summaryFile) {
fs.appendFileSync(summaryFile, markdown + '\n')
}
}
Pin third-party action versions by SHA for supply chain security:
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
For first-party GitHub actions (actions/*), tags are acceptable.
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.
中文简介正在准备中。当前显示原文说明。
Add shell completion support via a 'completion' subcommand for bash, zsh, and fish. Generic pattern for any Commander.js CLI, with static and dynamic completion examples.
中文简介正在准备中。当前显示原文说明。
Add zod schema validation for CLI options and YAML/JSON config files. Generic pattern for runtime validation with type-safe parsing and clear error messages in any Commander.js CLI.
中文简介正在准备中。当前显示原文说明。
Set up @changesets/cli for semantic versioning, CHANGELOG generation, and npm publishing in a monorepo or single package. Covers init, config, contributor workflow, GitHub Actions release automation, and npm provenance.
中文简介正在准备中。当前显示原文说明。
Add automatic CI/CD environment detection using ci-info package. Generic pattern for any CLI tool that needs to adapt behavior (prompts, output, integrations) based on whether it's running in CI.
中文简介正在准备中。当前显示原文说明。
Polish CLI user experience with @clack/prompts for interactive flows, update-notifier for version awareness, and enhanced Commander.js help text with examples and colors. Generic patterns for any Node.js CLI.
中文简介正在准备中。当前显示原文说明。