A comprehensive collection of reusable GitHub Actions workflows designed to streamline your CI/CD pipeline. This project provides modular, composable workflows that can be chained together to create powerful and customizable automation for your projects.
This collection aims to:
- Reduce duplication in GitHub Actions workflows across projects
- Provide standardized, tested workflow components
- Enable quick setup of complex CI/CD pipelines
- Support multiple platforms and frameworks (Spring Boot, Flutter, Docker)
To use these workflows in your project, reference them in your GitHub Actions workflow file:
name: CI Pipeline
on:
push:
branches: [main]
jobs:
version:
uses: lenra-io/github-actions/.github/workflows/get-version.yml@main
build:
needs: version
if: needs.version.outputs.version != ''
uses: lenra-io/github-actions/.github/workflows/build-springboot.yml@main
with:
version: ${{ needs.version.outputs.version }}
Workflow | Description | Key Features |
---|---|---|
get-version.yml |
Extract version from commits | - Uses conventional commits - Generates changelog - Supports prerelease channels |
generate-tags.yml |
Generate Docker image tags | - Semantic versioning support - Customizable tag templates |
upsert-release.yml |
Manage GitHub releases | - Creates/updates releases - Handles release assets - Supports prereleases |
Workflow | Description | Key Features |
---|---|---|
build-springboot.yml |
Build Spring Boot apps | - Gradle support - Artifact generation - Environment variables |
build-docker.yml |
Build Docker images | - Multi-platform builds - Build cache - Artifact inclusion |
build-flutter.yml |
Build Flutter apps | - Multi-platform builds - Versioning support - Signing support |
Workflow | Description | Key Features |
---|---|---|
check-springboot.yml |
Spring Boot code checks | - Code style - Static analysis |
check-flutter.yml |
Flutter code analysis | - Static analysis - Code formatting |
test-springboot.yml |
Spring Boot tests | - Unit tests - Integration tests - Coverage reports |
test-flutter.yml |
Flutter tests | - Widget tests - Integration tests - Coverage reports |
coverage-report.yml |
Process coverage data | - Coverage thresholds - Report generation |
Workflow | Description | Key Features |
---|---|---|
deploy-flutter.yml |
Deploy Flutter apps | - App Store deployment - Play Store deployment - Automated releases |
- GitHub Actions enabled repository
- Required permissions:
permissions: contents: write # For releases packages: write # For Docker images
- Secrets configured as needed per workflow
Each workflow accepts specific inputs and secrets. See individual workflow files for detailed configuration options.
working-directory
: For monorepo supportversion
: Semantic version stringartifact-name
: Name of the artifacts to produceartifact-path
: Path to files to upload as artifactwith-artifact-name
: Name of the artifacts to usewith-artifact-path
: Path to files in artifact
See the examples/ directory for complete workflow examples:
- Spring Boot application pipeline
- Flutter mobile app pipeline
- Docker-based service pipeline
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.