Tutorial

Push deployment status from GitHub Actions

Wire Messageboard into a deployment workflow so every release updates a visible status widget after you add it to your dashboard.

GitHub Actions is one of the most natural places to use Messageboard. Your CI/CD pipeline already knows what is happening. Messageboard lets you send those updates to a message name, add that name to a dashboard widget, and keep a live status surface your whole team can see.

By the end of this tutorial you will have:

  • A Messageboard widget that you add once and then updates automatically on every deploy
  • Separate started, succeeded, and failed states
  • Full version history for every deploy event

Step 1: Get your API key

Log in to Messageboard, create a token, and store it as a GitHub Actions secret.

Step 2: Add the secret to your repo

In your GitHub repo: Settings, Secrets and variables, Actions, New repository secret.

  • Name: MESSAGEBOARD_API_KEY
  • Value: your Messageboard API key

Step 3: Add the workflow steps

Open your existing workflow file, for example .github/workflows/deploy.yml, and add Messageboard calls at the key points:

name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Notify deploy started
        run: |
          curl -s -X POST https://msgboard.tech/api/messages \
            -H "x-api-key: ${{ secrets.MESSAGEBOARD_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "id": "deploy-status",
              "content": "Deploy started — ${{ github.sha }} by ${{ github.actor }}",
              "contentType": "TEXT"
            }'

      - uses: actions/checkout@v4

      - name: Run deploy
        run: ./deploy.sh

      - name: Notify deploy succeeded
        if: success()
        run: |
          curl -s -X POST https://msgboard.tech/api/messages \
            -H "x-api-key: ${{ secrets.MESSAGEBOARD_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "id": "deploy-status",
              "content": "Deploy complete — ${{ github.sha }} at $(date -u +\"%H:%M UTC\")",
              "contentType": "TEXT"
            }'

      - name: Notify deploy failed
        if: failure()
        run: |
          curl -s -X POST https://msgboard.tech/api/messages \
            -H "x-api-key: ${{ secrets.MESSAGEBOARD_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "id": "deploy-status",
              "content": "Deploy failed — ${{ github.sha }}. Check the Actions log.",
              "contentType": "TEXT"
            }'

Step 4: Add the widget to your dashboard

  1. Open Messageboard.
  2. Add a widget for the deploy-status message name.
  3. Optionally enter edit mode to reposition it.

What you get

Every push to main now sends a new version of the deploy-status message. Your dashboard always shows the latest. You can cycle through versions to see the full deploy history.

Going further

  • Use different message names like api-deploy-status and frontend-deploy-status to track services independently.
  • Include environment names in the message name for staging and production splits.
  • Pair this with the quickstart and the API reference.