This directory contains GitHub-specific configuration files for the DICOMKit repository.
GitHub Actions workflow definitions for CI/CD automation:
-
ci.yml- Main continuous integration pipeline- Runs on every push and pull request
- Tests on macOS with multiple Xcode versions
- Validates code quality and platform compatibility
-
scheduled-tests.yml- Weekly comprehensive testing- Memory leak detection with sanitizers
- Performance benchmarking
- Dependency update checks
-
docs.yml- Documentation deployment- Builds DocC documentation for all modules
- Deploys to GitHub Pages
-
release.yml- Release automation- Triggered by version tags
- Builds CLI tools
- Creates GitHub releases with artifacts
Helper scripts for local development:
local-ci.sh- Run CI checks locally before pushing- Validates builds
- Runs tests
- Checks for warnings
- Usage:
./.github/scripts/local-ci.sh [--with-docs]
Issue templates for bug reports, feature requests, and questions.
-
CI_CD_GUIDE.md- Comprehensive guide to the CI/CD pipeline- Workflow descriptions
- Maintenance instructions
- Troubleshooting tips
-
copilot-instructions.md- GitHub Copilot coding guidelines
Before pushing changes, run the local CI script to catch issues early:
./.github/scripts/local-ci.shAdd --with-docs to include documentation build validation:
./.github/scripts/local-ci.sh --with-docsCheck the status of CI workflows:
Documentation is automatically deployed to GitHub Pages when changes are pushed to the main branch.
View deployed docs at: https://raster-lab.github.io/DICOMKit/
To create a new release:
# Tag the release
git tag v1.2.3
# Push the tag
git push origin v1.2.3The release workflow will automatically:
- Build all CLI tools
- Create a GitHub release
- Upload build artifacts
- Generate release notes
See CI_CD_GUIDE.md for detailed maintenance instructions including:
- Updating Xcode versions
- Adding new CLI tools to builds
- Troubleshooting workflow failures
- Best practices