Monitor a scheduled GitHub Actions workflow
Scheduled workflows fail quietly when Actions is disabled, secrets expire, or a step errors. A final curl step proves the job finished successfully.
Before you start
Create a monitor with your workflow’s real frequency, then copy its URL from the dashboard. Its token is secret: do not publish it.
Setup
Copy the monitor URL into a secret
Create a monitor matching your schedule (for example 0 6 * * * → daily). In the repo: Settings → Secrets and variables → Actions → New repository secret named VERIFAGENT_URL with the full ping URL.
https://verifagent.com/api/ping/your-ping-tokenAdd a final heartbeat step
Put curl after the real work steps so a failed build never pings. Use the secret — never commit the token.
name: Nightly job
on:
schedule:
- cron: "0 6 * * *"
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run the real work
run: ./scripts/nightly.sh
- name: Ping Verifagent
run: curl -fsS "${{ secrets.VERIFAGENT_URL }}"Optional: fail the job if ping fails
curl -fsS already fails the step on non-2xx. Keep it last so you only reach it when prior steps succeeded.
- name: Ping Verifagent
run: curl -fsS "${{ secrets.VERIFAGENT_URL }}"Run workflow_dispatch once
From the Actions tab, run the workflow manually. The ping step should show 200 and {"ok":true}. Confirm Up in Verifagent.
{"ok":true}Available routes
The base URL is enough for a heartbeat. Variants enrich history if your platform has several branches.
GET https://YOUR_PING_URLPOST https://YOUR_PING_URL/successPOST https://YOUR_PING_URL/fail?msg=ErrorVerify
After a green run, the monitor is Up. Disable the workflow or fail an early step: no ping should arrive and Verifagent will open an incident after period + grace.
200 {"ok":true}. The monitor moves from Pending to Up.