Thank you for your interest in contributing to the BAUER GROUP Automation Templates repository! This project provides enterprise-grade GitHub Actions workflows and reusable components for modern software development.
- Code of Conduct
- Getting Started
- Development Workflow
- Contributing Guidelines
- Architecture Standards
- Testing Requirements
- Documentation Standards
- Review Process
This project follows the BAUER GROUP Code of Conduct. By participating, you agree to uphold this code.
- Git: Version 2.30+
- GitHub Account: With access to BAUER GROUP repositories
- Development Environment: VS Code recommended with YAML extension
- Knowledge: Basic understanding of GitHub Actions, YAML, and CI/CD concepts
automation-templates/
├── .github/
│ ├── workflows/ # Reusable workflows
│ ├── actions/ # Composite actions
│ └── config/ # Configuration templates
├── github/
│ ├── workflows/examples/ # Usage examples
│ └── cleanup/ # Repository maintenance tools
├── docs/ # Documentation
└── README.MD # Project overview
- Fork the repository to your personal GitHub account
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/automation-templates.git cd automation-templates - Add upstream remote:
git remote add upstream https://github.com/bauer-group/automation-templates.git
- Create a feature branch:
git checkout -b feature/your-feature-name
- Main Branch:
main- Production-ready code - Feature Branches:
feature/description- New features - Bug Fixes:
fix/description- Bug fixes - Documentation:
docs/description- Documentation updates
We use Conventional Commits for clear commit messages:
type(scope): description
feat(docker): add multi-platform build support
fix(nodejs): resolve dependency security vulnerabilities
docs(readme): update installation instructions
chore(deps): bump actions/checkout to v4
Types:
feat: New featuresfix: Bug fixesdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Before contributing, please:
- Search existing issues to avoid duplicates
- Create an issue for discussion before major changes
- Use issue templates when available
- Provide detailed descriptions with context and examples
- Update documentation for any new features
- Add or update tests as appropriate
- Follow coding standards outlined below
- Ensure CI passes all checks
- Request reviews from maintainers
- Address feedback promptly
- Use 2 spaces for indentation
- No trailing whitespace
- Consistent naming conventions (kebab-case for files)
- Descriptive comments for complex logic
- Follow the GitHub Actions best practices
- Use semantic versioning for releases
- Include comprehensive
action.ymlmetadata - Provide clear input/output descriptions
- Modular and reusable components
- Error handling and graceful failures
- Secure secret management
- Performance optimization (caching, parallelization)
- Separation of Concerns: Each action/workflow has a single responsibility
- Reusability: Components work across different project types
- Configuration-Driven: Behavior controlled via inputs and config files
- Security-First: No hardcoded secrets, proper permission scoping
- Workflows:
kebab-case.yml(e.g.,nodejs-build.yml) - Actions:
kebab-casedirectories (e.g.,security-scan/) - Configs:
kebab-case.ymlin appropriate config subdirectories
Follow our Secrets Naming Convention:
<SCOPE>_<SERVICE>_<PURPOSE>_<FORMAT>
Examples:
DOTNET_NUGET_PUBLISH_API_KEYDOCKER_REGISTRY_PASSWORDNODEJS_NPM_TOKEN
Use the /.github/config/ structure:
.github/config/
├── nodejs-build/
│ ├── default.yml
│ ├── package.yml
│ └── microservice.yml
├── docker-build/
│ └── default.yml
└── security/
└── scan-rules.yml
- Local Testing: Use act for local workflow testing
- Integration Tests: Test with real repositories when possible
- Edge Cases: Handle error conditions gracefully
- Performance: Monitor resource usage and execution time
Create test workflows in github/workflows/examples/ directories:
name: Test Example - Node.js Build
on:
workflow_dispatch:
inputs:
test-scenario:
description: 'Test scenario to run'
type: choice
options: ['basic', 'with-cache', 'multi-version']
jobs:
test-nodejs-build:
uses: ./.github/workflows/nodejs-build.yml
with:
node-versions: '["16", "18", "20"]'
package-manager: 'npm'
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}- README.MD: Overview, quick start, examples
- Action README.MD: Detailed usage, inputs, outputs
- Examples: Working examples in
github/workflows/examples/ - CHANGELOG.MD: Version history and breaking changes
# Action Name
Brief description of what this action does.
## Inputs
| Input | Description | Required | Default |
|-------|-------------|----------|---------|
| `input-name` | Description | Yes | `default` |
## Outputs
| Output | Description |
|--------|-------------|
| `output-name` | Description |
## Example Usage
\```yaml
- name: Step Name
uses: bauer-group/automation-templates/.github/actions/action-name@main
with:
input-name: value
\```- Clear purpose and use cases
- Configuration options
- Secret requirements
- Integration examples
- Troubleshooting guide
Provide comprehensive examples:
- Basic Usage: Minimal configuration
- Advanced Usage: Full feature demonstration
- Integration: Real-world scenarios
- Troubleshooting: Common issues and solutions
- Automated Checks: CI must pass
- Code Review: At least one maintainer approval
- Security Review: For security-related changes
- Documentation Review: Ensure completeness
- ✅ Feature works as expected
- ✅ Error handling implemented
- ✅ Performance considerations addressed
- ✅ Security best practices followed
- ✅ Follows project conventions
- ✅ Clear, readable code
- ✅ Appropriate comments
- ✅ No hardcoded values
- ✅ Updated README files
- ✅ Added usage examples
- ✅ Updated CHANGELOG
- ✅ Clear commit messages
- Be Constructive: Provide specific, actionable feedback
- Be Responsive: Address review comments promptly
- Be Collaborative: Work together to improve the solution
- Be Patient: Reviews take time for quality assurance
We use Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes (backward compatible)
- Prepare Release: Update CHANGELOG.MD and documentation
- Create PR: Target
mainbranch - Review: Maintainer approval required
- Tag Release: Automatic via automatic-release.yml
- Documentation: Auto-updated via documentation.yml
- Issues: For bug reports and feature requests
- Discussions: For questions and general discussion
- Email: support@bauer-group.com for sensitive issues
By contributing to this repository, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to making our automation infrastructure better! 🚀
For questions or clarification on these guidelines, please create an issue or reach out to the maintainers.