GitHub Actions Reusable Workflows and Composite Actions

GitHub Actions Reusable

This topic is essential because teams often duplicate the same workflow steps across repositories. Reusable workflows and composite actions help reduce duplication, improve maintainability, and standardize CI/CD pipelines.


Draft Blog Post

GitHub Actions Reusable Workflows and Composite Actions

As projects grow, GitHub Actions workflows can become repetitive. Many teams copy the same build, test, and deploy steps across multiple repositories. While this works, it creates a maintenance headache.

The solution? Reusable workflows and composite actions. Both features help teams keep CI/CD pipelines clean, efficient, and easier to maintain.


🔹 What are Reusable Workflows?

Reusable workflows allow you to call an existing workflow from another repository or within the same one. This is especially useful if you want multiple projects to share the same build or deployment logic.

Example: Reusable Workflow (in .github/workflows/reusable.yml)

name: Reusable Build Workflow

on:
  workflow_call:
    inputs:
      node-version:
        required: true
        type: string

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: ${{ inputs.node-version }}
      - run: npm install
      - run: npm test

Example: Calling a Reusable Workflow

name: Call Reusable Workflow

on:
  push:
    branches: [ main ]

jobs:
  use-reusable:
    uses: org/repo/.github/workflows/reusable.yml@main
    with:
      node-version: '18'

With this setup, multiple repositories can share the same workflow without duplicating steps.


🔹 What are Composite Actions?

Composite actions let you group multiple steps into a single action. Unlike reusable workflows, composite actions are useful when you want to package logic into a custom action that can be reused in workflows.

Example: Composite Action (in .github/actions/setup-node/action.yml)

name: 'Setup Node.js and Install'
description: 'Sets up Node.js and installs dependencies'

inputs:
  node-version:
    required: true
    description: 'Node.js version'

runs:
  using: "composite"
  steps:
    - uses: actions/setup-node@v3
      with:
        node-version: ${{ inputs.node-version }}
    - run: npm install

Example: Using Composite Action

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: ./.github/actions/setup-node
        with:
          node-version: '18'
      - run: npm test

This allows you to package common steps into a single action, reducing duplication across workflows.


🔹 When to Use What?

  • Reusable Workflows → Best for high-level processes like builds, tests, or deployments that are shared across repositories.
  • Composite Actions → Best for grouping related steps into a single, reusable action within a workflow.

🔹 Best Practices

✅ Keep workflows and actions in dedicated repositories for better reusability.
✅ Use clear inputs and outputs to make workflows flexible.
✅ Version your workflows and actions (e.g., @v1) to avoid breaking changes.
✅ Document each workflow or action so others know how to use it.


✅ Key Takeaways

  • Reusable workflows let you share complete workflows across repositories.
  • Composite actions let you package steps into reusable building blocks.
  • Both features help reduce duplication, improve maintainability, and enforce consistency across CI/CD pipelines.

By using these features, your team can build workflows that are modular, scalable, and easy to maintain.

You Might Also Like

🛠️ Recommended Tools for Developers & Tech Pros

Save time, boost productivity, and work smarter with these AI-powered tools I personally use and recommend:

1️⃣ CopyOwl.ai – Research & Write Smarter
Write fully referenced reports, essays, or blogs in one click.
✅ 97% satisfaction • ✅ 10+ hrs saved/week • ✅ Academic citations

2️⃣ LoopCV.pro – Build a Job-Winning Resume
Create beautiful, ATS-friendly resumes in seconds — perfect for tech roles.
✅ One-click templates • ✅ PDF/DOCX export • ✅ Interview-boosting design

3️⃣ Speechify – Listen to Any Text
Turn articles, docs, or PDFs into natural-sounding audio — even while coding.
✅ 1,000+ voices • ✅ Works on all platforms • ✅ Used by 50M+ people

4️⃣ Jobright.ai – Automate Your Job Search
An AI job-search agent that curates roles, tailors resumes, finds referrers, and can apply for jobs—get interviews faster.
✅ AI agent, not just autofill – ✅ Referral insights – ✅ Faster, personalized matching