Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
90 lines
2.0 KiB
Markdown
90 lines
2.0 KiB
Markdown
# CI Environment Support
|
|
|
|
Automatically detect CI environments and toggle features based on local vs CI builds.
|
|
|
|
## Overview
|
|
|
|
tsdown uses the [`is-in-ci`](https://www.npmjs.com/package/is-in-ci) package to detect CI environments. This covers GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis CI, and more.
|
|
|
|
## CI-Aware Values
|
|
|
|
Several options accept CI-aware string values:
|
|
|
|
| Value | Behavior |
|
|
|-------|----------|
|
|
| `true` | Always enabled |
|
|
| `false` | Always disabled |
|
|
| `'ci-only'` | Enabled only in CI, disabled locally |
|
|
| `'local-only'` | Enabled only locally, disabled in CI |
|
|
|
|
## Supported Options
|
|
|
|
These options accept CI-aware values:
|
|
|
|
- `dts` - TypeScript declaration file generation
|
|
- `publint` - Package lint validation
|
|
- `attw` - "Are the types wrong" validation
|
|
- `report` - Bundle size reporting
|
|
- `exports` - Auto-generate `package.json` exports
|
|
- `unused` - Unused dependency check
|
|
- `devtools` - DevTools integration
|
|
- `failOnWarn` - Fail on warnings (defaults to `'ci-only'`)
|
|
|
|
## Usage
|
|
|
|
### String Form
|
|
|
|
```ts
|
|
export default defineConfig({
|
|
dts: 'local-only', // Skip DTS in CI for faster builds
|
|
publint: 'ci-only', // Only run publint in CI
|
|
failOnWarn: 'ci-only', // Fail on warnings in CI only (default)
|
|
})
|
|
```
|
|
|
|
### Object Form
|
|
|
|
When an option takes a configuration object, set `enabled` to a CI-aware value:
|
|
|
|
```ts
|
|
export default defineConfig({
|
|
publint: {
|
|
enabled: 'ci-only',
|
|
level: 'error',
|
|
},
|
|
attw: {
|
|
enabled: 'ci-only',
|
|
profile: 'node16',
|
|
},
|
|
})
|
|
```
|
|
|
|
### Config Function
|
|
|
|
The config function receives a `ci` boolean in its context:
|
|
|
|
```ts
|
|
export default defineConfig((_, { ci }) => ({
|
|
minify: ci,
|
|
sourcemap: !ci,
|
|
}))
|
|
```
|
|
|
|
## Typical CI Configuration
|
|
|
|
```ts
|
|
export default defineConfig({
|
|
entry: 'src/index.ts',
|
|
format: ['esm', 'cjs'],
|
|
dts: true,
|
|
failOnWarn: 'ci-only',
|
|
publint: 'ci-only',
|
|
attw: 'ci-only',
|
|
})
|
|
```
|
|
|
|
## Related Options
|
|
|
|
- [Package Validation](option-lint.md) - publint and attw configuration
|
|
- [Log Level](option-log-level.md) - `failOnWarn` option details
|