Skip to content

Automated per-service semantic versioning for monorepos. Supports tag-based or auto-incrementing version management and stores versions in isolated files. Ideal for multi-service repos with independent release flows.

License

Notifications You must be signed in to change notification settings

Fitoris/versioning-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏷 Service Versioning GitHub Action

A reusable GitHub Action that enables independent semantic versioning for each service in a monorepo.
Useful for managing deployments, CI/CD pipelines, or Docker image tagging per service.


πŸ’‘ What Problem Does It Solve?

In monorepos with multiple services or microservices, using a single version for the whole repository leads to:

  • Unnecessary rebuilds or deployments
  • Difficult release tracking
  • Entangled version histories

This action solves that by:

  • Managing version state separately per service
  • Bumping versions automatically or via tags
  • Storing versions in dedicated VERSION files

✨ Features

  • βœ… Tag-based versioning via Git tags like ServiceName@1.2.3
  • βœ… Patch auto-bump on branch pushes
  • βœ… Git commit and push of updated version file
  • βœ… Customizable version folder root
  • βœ… Easily used across any CI/CD or Docker pipeline

πŸ“₯ Inputs

Name Required Description
service-name βœ… Yes Name of the service (e.g., AuditLog, UserService).
version-folder βœ… Yes Root folder to store version files. Actual path becomes <root>/<service>/VERSION.

πŸ“€ Outputs

Name Description
version Computed version string (e.g., 1.0.4)

πŸš€ Usage

permissions:
  contents: write

jobs:
  version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Determine service version
        id: version
        uses: your-org/service-versioning-action@v1
        with:
          service-name: YourService
          version-folder: versions

      - name: Use version
        run: echo "VERSION=${{ steps.version.outputs.version }}"

About

Automated per-service semantic versioning for monorepos. Supports tag-based or auto-incrementing version management and stores versions in isolated files. Ideal for multi-service repos with independent release flows.

Resources

License

Stars

Watchers

Forks

Packages

No packages published