How to Set Up a Deployment Dashboard on GitHub Using GitHub Actions

How to Set Up a Deployment Dashboard on GitHub Using GitHub Actions

Introduction

Modern DevOps pipelines require not only automation, but visibility. Having a deployment dashboard allows your team to monitor the progress, status, and results of deployments across all services — in real-time.

With GitHub Actions and Projects V2, you can build a powerful automated dashboard that updates as deployments start, succeed, or fail.


What You Need

  • A central repository (e.g. deployment-dashboard) with a GitHub Project V2 configured.
  • One or more microservices, each with a GitHub Actions workflow that builds and deploys.
  • A GitHub token with repo, workflow, and project scopes.


Step-by-Step Setup

1. Create a GitHub Project V2

Go to your dashboard repository → Projects tab → New Project.

Set up fields like:

  • Status (Single select: In Progress, Success, Failed)
  • App Name
  • Branch
  • Version
  • Docker Tag
  • Error
  • Environment
  • Trigger By, etc.

Tip: You can customize the fields based on what metadata you'd like to track.

2. Add a Workflow to Update the Dashboard

In .github/workflows/update-project-dashboard.yml, use actions/github-script to:

  • Create an item in the GitHub Project when a deployment starts or finishes.
  • Update metadata fields like version, timestamp, commit, etc.
  • Use the GraphQL API to dynamically write to fields.

Here’s an example of a deployment update job already configured:

Article content

The workflow listens for the deploy-result event and dynamically writes data like:

  • branch, status, error, version, dockerTag, etc.
  • Adds the item as a draft or linked card with full metadata
  • Updates the correct columns and fields using GraphQL


3. Notify the Dashboard from Microservice Workflows

In each microservice workflow (e.g., deploy.yml), use this at key steps:

Article content
❗ Remember:

Result: A Dynamic Deployment Dashboard

Each time a deployment starts or finishes:

A new card is created in the GitHub Project

Metadata is automatically filled

Failures or rollback logic can also be included

You get a centralized, real-time dashboard without external tools


Final Tips

  • Store your token with project and workflow scopes in GH_PROJECT_TOKEN.
  • Use always() for the notification to trigger even on failure.
  • Group cards by Status or App Name for clear visibility.

To view or add a comment, sign in

More articles by Luis Gabriel Ahumada

Insights from the community

Others also viewed

Explore topics