This directory contains GitHub-specific configurations for the NimsForest project.
Automated CI/CD pipelines using GitHub Actions:
-
ci.yml- Main continuous integration pipeline- Runs on every push and pull request
- Tests on multiple Go versions (1.23.x, 1.24.x)
- Performs linting and code quality checks
- Generates code coverage reports
- Builds for multiple platforms
-
release.yml- Release automation- Triggers on version tags (v*)
- Builds multi-platform binaries
- Creates GitHub releases with changelogs
- Publishes Docker images
-
debian-package.yml- Debian package builder- Creates native .deb packages
- Builds for amd64 and arm64
- Includes systemd service integration
PULL_REQUEST_TEMPLATE.md- Standard PR template with checklistISSUE_TEMPLATE/bug_report.md- Bug report templateISSUE_TEMPLATE/feature_request.md- Feature request template
Before pushing, test your changes locally:
# Run tests
make test
# Run linting
make lint
# Run all checks
make check-
Ensure all tests pass
-
Create and push a version tag:
git tag -a v1.0.0 -m "Release v1.0.0" git push origin v1.0.0 -
Watch the Actions tab for workflow progress
-
Download artifacts from the releases page
- Go to: https://github.com/yourusername/nimsforest/actions
- Click on any workflow run to see details
- Download build artifacts from successful runs
Add these in Settings → Secrets and variables → Actions:
CODECOV_TOKEN- For code coverage reportingDOCKER_USERNAME- For Docker Hub publishingDOCKER_PASSWORD- Docker Hub token
Recommended settings for the main branch:
- Require status checks to pass (CI workflow)
- Require code review
- Require linear history
- Include administrators
For CI/CD issues, see:
- CI_CD.md - Complete CI/CD documentation
- GitHub Actions logs