Skip to content

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: shiipou/github-actions/.github/workflows/get-version.yml@mainbuild:
needs: versionif: needs.version.outputs.version != ''uses: shiipou/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
  • with-artifact-path: Path to files in artifact

📚 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 re-use workflows in all of my repositories

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages