107 lines
3.2 KiB
Markdown
107 lines
3.2 KiB
Markdown
# Fork Guide - CI/CD Configuration
|
|
|
|
## CI/CD in Forks
|
|
|
|
By default, CI/CD workflows are **disabled in forks** to conserve GitHub Actions resources and provide a cleaner fork experience.
|
|
|
|
### Why This Approach?
|
|
|
|
- **Resource efficiency**: Prevents unnecessary GitHub Actions usage across 1,600+ forks
|
|
- **Clean fork experience**: No failed workflow notifications in your fork
|
|
- **Full control**: Enable CI/CD only when you actually need it
|
|
- **PR validation**: Your changes are still fully tested when submitting PRs to the main repository
|
|
|
|
## Enabling CI/CD in Your Fork
|
|
|
|
If you need to run CI/CD workflows in your fork, follow these steps:
|
|
|
|
1. Navigate to your fork's **Settings** tab
|
|
2. Go to **Secrets and variables** → **Actions** → **Variables**
|
|
3. Click **New repository variable**
|
|
4. Create a new variable:
|
|
- **Name**: `ENABLE_CI_IN_FORK`
|
|
- **Value**: `true`
|
|
5. Click **Add variable**
|
|
|
|
That's it! CI/CD workflows will now run in your fork.
|
|
|
|
## Disabling CI/CD Again
|
|
|
|
To disable CI/CD workflows in your fork, you can either:
|
|
|
|
- **Delete the variable**: Remove the `ENABLE_CI_IN_FORK` variable entirely, or
|
|
- **Set to false**: Change the `ENABLE_CI_IN_FORK` value to `false`
|
|
|
|
## Alternative Testing Options
|
|
|
|
You don't always need to enable CI/CD in your fork. Here are alternatives:
|
|
|
|
### Local Testing
|
|
|
|
Run tests locally before pushing:
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm ci
|
|
|
|
# Run linting
|
|
npm run lint
|
|
|
|
# Run format check
|
|
npm run format:check
|
|
|
|
# Run validation
|
|
npm run validate
|
|
|
|
# Build the project
|
|
npm run build
|
|
```
|
|
|
|
### Pull Request CI
|
|
|
|
When you open a Pull Request to the main repository:
|
|
|
|
- All CI/CD workflows automatically run
|
|
- You get full validation of your changes
|
|
- No configuration needed
|
|
|
|
### GitHub Codespaces
|
|
|
|
Use GitHub Codespaces for a full development environment:
|
|
|
|
- All tools pre-configured
|
|
- Same environment as CI/CD
|
|
- No local setup required
|
|
|
|
## Frequently Asked Questions
|
|
|
|
### Q: Will my PR be tested even if CI is disabled in my fork?
|
|
|
|
**A:** Yes! When you open a PR to the main repository, all CI/CD workflows run automatically, regardless of your fork's settings.
|
|
|
|
### Q: Can I selectively enable specific workflows?
|
|
|
|
**A:** The `ENABLE_CI_IN_FORK` variable enables all workflows. For selective control, you'd need to modify individual workflow files.
|
|
|
|
### Q: Do I need to enable CI in my fork to contribute?
|
|
|
|
**A:** No! Most contributors never need to enable CI in their forks. Local testing and PR validation are sufficient for most contributions.
|
|
|
|
### Q: Will disabling CI affect my ability to merge PRs?
|
|
|
|
**A:** No! PR merge requirements are based on CI runs in the main repository, not your fork.
|
|
|
|
### Q: Why was this implemented?
|
|
|
|
**A:** With over 1,600 forks of BMAD-METHOD, this saves thousands of GitHub Actions minutes monthly while maintaining code quality standards.
|
|
|
|
## Need Help?
|
|
|
|
- Join our [Discord Community](https://discord.gg/gk8jAdXWmj) for support
|
|
- Check the [Contributing Guide](../README.md#contributing) for more information
|
|
- Open an issue if you encounter any problems
|
|
|
|
---
|
|
|
|
> 💡 **Pro Tip**: This fork-friendly approach is particularly valuable for projects using AI/LLM tools that create many experimental commits, as it prevents unnecessary CI runs while maintaining code quality standards.
|