Skip to content

shiipou/github-actions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

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 Pipeline
on:
  push:
    branches: [main]

jobs:
  version:
    uses: shiipou/github-actions/.github/workflows/get-version.yml@main
    
  build:
    needs: version
    if: needs.version.outputs.version != ''
    uses: shiipou/github-actions/.github/workflows/build-springboot.yml@main
    with:
      version: ${{ needs.version.outputs.version }}

📦 Available Workflows

Version Management

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

Build Pipelines

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

Quality & Testing

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

Deployment

Workflow Description Key Features
deploy-flutter.yml Deploy Flutter apps - App Store deployment
- Play Store deployment
- Automated releases

📋 Requirements

  • GitHub Actions enabled repository
  • Required permissions:
    permissions:
      contents: write    # For releases
      packages: 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

License

Stars

Watchers

Forks

Packages

No packages published