Skip to content
Pavel Anikin edited this page May 6, 2025 · 3 revisions

Qubership Workflow Hub 🚀

Qubership Workflow Hub is a collection of reusable GitHub Actions workflows designed to simplify CI/CD automation and release management for your GitHub projects.

📋 Overview

  • Single Source: centralizes commonly used workflows in one place.
  • Reusability: leverage battle-tested templates instead of recreating similar steps across projects.
  • Accelerated Development: automate build, test, package publishing, and release processes with minimal configuration.
  • Error Reduction: standardized workflows help minimize human errors.

About the Architecture

Want to understand how everything fits together? Check out the CI/CD Workflow Architecture (Reference Model) — a high-level overview of workflows, secrets, tokens, and automation flow used across Netcracker/* repositories.


⭐ Reusable Workflows

  • GitHub Release: automatically create and tag releases.
  • Docker Publish: build and publish Docker images.
  • Maven Publish: sign and deploy Maven artifacts to a repository.
  • Python Publish: build, test, and publish Python packages.
  • Release Drafter: generate draft releases based on merged pull requests. See the detailed and complete list of Reusable Workflows here Reusable Workflows

▶️ Template Flows

These standalone actions help you build and manage your own workflows.

  • automatic-pr-labeler: automatically labels pull requests when they are opened or reopened.
  • auto-labeler: labels pull requests based on Conventional Commits messages.
  • cla: manages Contributor License Agreements for pull requests.
  • go-check-license: checks licenses for Go modules.
  • pr-collect-commit-messages: aggregates commit messages into the pull request description.
  • pr-conventional-commits: enforces Conventional Commits for pull request commits.
  • pr-lint-title: lints pull request titles to ensure they follow Conventional Commits.
  • prettier & prettierFix: format code and fix formatting issues using Prettier.
  • profanity-filter & profanityFilter: filter profanity in issues, comments, and pull requests.
  • super-linter: runs a collection of linters to validate code quality.

See the detailed and complete list of Template Flows here: Template Flows.

▶️ Actions

These actions handle specialized tasks within workflows:

  • archive-and-upload-assets: archives specified folders (tar, tar.gz, zip) and uploads them as release assets.
  • cdxgen: generates a CycloneDX SBOM and vulnerability report, then uploads them as artifacts.
  • chart-version: automatically updates the version in a Helm Chart.yaml file.
  • commit-and-push: commits and pushes modified files with configurable author, email, and message.
  • container-package-cleanup: deletes old container package versions (e.g., Docker images) based on tag and date criteria.
  • custom-event: triggers a custom repository_dispatch event with an optional JSON payload.
  • docker-action: builds and publishes Docker images via Buildx, supporting multi-platform builds and tagging.
  • metadata-action: extracts metadata from the GitHub context and generates a version string based on templates.
  • poetry-publisher: builds, tests, bumps version, and publishes Python packages to PyPI via Poetry.
  • pom-updater: updates specified XML nodes in Maven pom.xml files using XPath expressions.
  • pr-add-messages: collects commit messages from a pull request and adds them to its description.
  • pr-assigner: automatically assigns pull requests to users based on configuration or CODEOWNERS.
  • store-input-params: saves workflow run input parameters as a JSON artifact for later use.
  • tag-action: creates, deletes, and checks Git tags in a repository with dry-run support.
  • verify-json: validates a JSON file against a provided schema using jsonschema.

See the detailed and complete list of Actions here Actions

Workflow Templates & Examples

You can find a wide collection of ready‑to‑use workflow templates and usage examples here: Netcracker Workflow Templates

🚀 Getting Started

  1. Create your workflow file: .github/workflows/ci.yml
  2. Import a reusable workflow:
    name: CI
    
    on: [push, pull_request]
    
    jobs:
      build:
        uses: netcracker/qubership-workflow-hub/.github/workflows/build.yml@main
        with:
          # workflow-specific inputs
          java-version: '11'
          test: 'mvn test'
  3. Customize inputs as needed (see workflow inputs reference).
  4. Commit and push to trigger your first run.

For more examples, see Workflow Templates & Examples.

🤝 Contributing Rules

Contributions welcome! Please:

  1. Fork the repo.
  2. Create a feature branch (git checkout -b feature/XYZ).
  3. Add tests and documentation.