Skip to content

Commit e2b689c

Browse files
added CI documentation file
1 parent 28f7c1e commit e2b689c

File tree

2 files changed

+249
-1
lines changed

2 files changed

+249
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# LlamaHome
1+
# Llama Home
22

33
A comprehensive training and inference pipeline for LLM models, featuring efficient resource management, advanced monitoring, and enterprise-grade security features.
44

docs/CI.md

+248
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
# Continuous Integration Pipeline
2+
3+
## Table of Contents
4+
5+
- [Overview](#overview)
6+
- [Workflows](#workflows)
7+
- [Test Pipeline](#test-pipeline)
8+
- [Code Quality](#code-quality)
9+
- [Security](#security)
10+
11+
This document outlines our CI/CD pipeline implemented with GitHub Actions.
12+
13+
## Overview
14+
15+
Our CI pipeline ensures code quality, runs tests, and maintains security standards through automated checks and validations.
16+
17+
## Workflows
18+
19+
### 1. Test Pipeline (`test-pipeline.yml`)
20+
21+
The test pipeline runs our test suite and reports coverage.
22+
23+
#### Jobs
24+
25+
1. **Main Test Job**
26+
```yaml
27+
env:
28+
PYTHONPATH: ${{ github.workspace }}
29+
COVERAGE_FILE: coverage.xml
30+
```
31+
- Runs on Ubuntu latest
32+
- Uses Python 3.11
33+
- Executes unit tests with coverage
34+
- Uploads test results and coverage reports
35+
- Integrates with Codecov
36+
37+
2. **Distributed Tests**
38+
- Runs after main tests complete
39+
- Tests distributed functionality
40+
- Uploads distributed test results
41+
42+
#### Test Categories
43+
- Unit Tests
44+
- Integration Tests
45+
- Performance Tests
46+
- Specialized Tests
47+
- Distributed Tests
48+
49+
#### Artifacts
50+
- Coverage Reports (XML and HTML)
51+
- Test Results
52+
- Performance Metrics
53+
- Distributed Test Results
54+
55+
### 2. Code Quality (`trunk-check.yml`)
56+
57+
Ensures code quality through automated checks.
58+
59+
#### Features
60+
- Code formatting validation
61+
- Static type checking
62+
- Security scanning
63+
- Linting
64+
- Style enforcement
65+
66+
#### Tools
67+
- **black**: Code formatting (line length: 88)
68+
- **isort**: Import sorting
69+
- **mypy**: Static type checking
70+
- **ruff**: Fast Python linter
71+
- **bandit**: Security scanning
72+
- **prettier**: General formatting
73+
- **trufflehog**: Secret detection
74+
75+
## Security
76+
77+
### Permissions
78+
79+
All workflows use explicit permissions following the principle of least privilege:
80+
81+
```yaml
82+
permissions:
83+
contents: read # Read repository contents
84+
checks: write # Write check results
85+
actions: read # Read Actions data
86+
pull-requests: write # Write PR comments (for Codecov)
87+
```
88+
89+
### Security Features
90+
- Pinned action versions
91+
- Secret scanning
92+
- Dependency validation
93+
- Code security analysis
94+
95+
## Configuration
96+
97+
### Environment Setup
98+
```yaml
99+
env:
100+
PYTHONPATH: ${{ github.workspace }}
101+
COVERAGE_FILE: coverage.xml
102+
```
103+
104+
### Python Dependencies
105+
```bash
106+
python -m pip install --upgrade pip
107+
python -m pip install pytest pytest-cov coverage
108+
pip install -e ".[test]"
109+
```
110+
111+
## Local Development
112+
113+
### Running Tests Locally
114+
115+
```bash
116+
# Run all tests
117+
make test
118+
119+
# Run specific test suites
120+
make test-unit
121+
make test-integration
122+
make test-performance
123+
124+
# Run with coverage
125+
make test-coverage
126+
```
127+
128+
### Code Quality Checks
129+
130+
```bash
131+
# Run all checks
132+
trunk check
133+
134+
# Format code
135+
trunk fmt
136+
137+
# Run specific linter
138+
trunk check --filter=black
139+
```
140+
141+
## Continuous Deployment
142+
143+
Currently implemented deployment stages:
144+
- Test execution
145+
- Code quality validation
146+
- Security scanning
147+
- Coverage reporting
148+
149+
Future planned stages:
150+
- Automated releases
151+
- Docker image builds
152+
- Environment deployments
153+
154+
## Best Practices
155+
156+
1. **Commits**
157+
- Follow conventional commit format
158+
- Include relevant test updates
159+
- Keep changes focused
160+
161+
2. **Pull Requests**
162+
- Wait for all checks to pass
163+
- Address security findings
164+
- Maintain test coverage
165+
166+
3. **Code Quality**
167+
- Run formatters before committing
168+
- Address all linter warnings
169+
- Follow type hints
170+
171+
## Troubleshooting
172+
173+
### Common Issues
174+
175+
1. **Test Failures**
176+
```bash
177+
# Run tests with verbose output
178+
pytest -v
179+
180+
# Run specific failed test
181+
pytest path/to/test.py::test_name -v
182+
```
183+
184+
2. **Coverage Issues**
185+
```bash
186+
# Generate detailed coverage report
187+
coverage report --show-missing
188+
```
189+
190+
3. **Linting Errors**
191+
```bash
192+
# Run specific linter
193+
trunk check --filter=black path/to/file.py
194+
```
195+
196+
### CI Pipeline Failures
197+
198+
1. Check the GitHub Actions logs
199+
2. Verify local tests pass
200+
3. Ensure all dependencies are properly specified
201+
4. Validate environment variables
202+
203+
## Monitoring
204+
205+
### Metrics Tracked
206+
- Test coverage percentage
207+
- Build success rate
208+
- Test execution time
209+
- Security findings
210+
- Code quality scores
211+
212+
### Reporting
213+
- Codecov integration
214+
- GitHub Security tab
215+
- Actions workflow summary
216+
- Artifact retention
217+
218+
## Future Improvements
219+
220+
1. **Pipeline Optimization**
221+
- Parallel test execution
222+
- Improved caching
223+
- Faster builds
224+
225+
2. **Security Enhancements**
226+
- SAST integration
227+
- Dependency scanning
228+
- Container scanning
229+
230+
3. **Automation**
231+
- Release automation
232+
- Change log generation
233+
- Version management
234+
235+
## Contact
236+
237+
For CI/CD related issues:
238+
1. Check the troubleshooting guide above
239+
2. Review workflow logs
240+
3. Open an issue with the "ci" label
241+
4. Contact the development team
242+
243+
## References
244+
245+
- [GitHub Actions Documentation](https://docs.github.com/en/actions)
246+
- [Trunk Documentation](https://docs.trunk.io)
247+
- [Codecov Documentation](https://docs.codecov.io)
248+
- [pytest Documentation](https://docs.pytest.org)

0 commit comments

Comments
 (0)