Skip to content

Latest commit

History

270 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

GitHub Actions Reusable Workflows Collection

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.

🎯 Purpose

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)

🚀 Quick Start

To use these workflows in your project, reference them in your GitHub Actions workflow file:

name: CI Pipelineon:
push:
branches: [main]jobs:
version:
uses: lenra-io/github-actions/.github/workflows/get-version.yml@mainbuild:
needs: versionif: needs.version.outputs.version != ''uses: lenra-io/github-actions/.github/workflows/build-springboot.yml@mainwith:
version: ${{ needs.version.outputs.version }}

📦 Available Workflows

Version Management

WorkflowDescriptionKey Features
get-version.ymlExtract version from commits- Uses conventional commits
- Generates changelog
- Supports prerelease channels
generate-tags.ymlGenerate Docker image tags- Semantic versioning support
- Customizable tag templates
upsert-release.ymlManage GitHub releases- Creates/updates releases
- Handles release assets
- Supports prereleases

Build Pipelines

WorkflowDescriptionKey Features
build-springboot.ymlBuild Spring Boot apps- Gradle support
- Artifact generation
- Environment variables
build-docker.ymlBuild Docker images- Multi-platform builds
- Build cache
- Artifact inclusion
build-flutter.ymlBuild Flutter apps- Multi-platform builds
- Versioning support
- Signing support

Quality & Testing

WorkflowDescriptionKey Features
check-springboot.ymlSpring Boot code checks- Code style
- Static analysis
check-flutter.ymlFlutter code analysis- Static analysis
- Code formatting
test-springboot.ymlSpring Boot tests- Unit tests
- Integration tests
- Coverage reports
test-flutter.ymlFlutter tests- Widget tests
- Integration tests
- Coverage reports
coverage-report.ymlProcess coverage data- Coverage thresholds
- Report generation

Deployment

WorkflowDescriptionKey Features
deploy-flutter.ymlDeploy Flutter apps- App Store deployment
- Play Store deployment
- Automated releases

📋 Requirements

  • GitHub Actions enabled repository
  • Required permissions:
    permissions:
    contents: write # For releasespackages: write # For Docker images
  • Secrets configured as needed per workflow

🔧 Configuration

Each workflow accepts specific inputs and secrets. See individual workflow files for detailed configuration options.

Common Inputs

  • working-directory: For monorepo support
  • version: Semantic version string
  • artifact-name: Name of the artifacts to produce
  • artifact-path: Path to files to upload as artifact
  • with-artifact-name: Name of the artifacts to use, can't be used with with-artifact-ids
  • with-artifact-ids: Comma separated list of Ids of the artifacts to use, can't be used with with-artifact-name
  • with-artifact-path: Path to files in artifact
  • with-artifact-unzip: Which artifact to unzip during download. Comma separated list of names, Ids, true, false, or '*'.

📚 Examples

See the examples/ directory for complete workflow examples:

  • Spring Boot application pipeline
  • Flutter mobile app pipeline
  • Docker-based service pipeline

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

About

GitHub Repository to reduce workflows for all our repository

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors