Migration Guide

Migrate from GitHub Actions Cron

No 15-minute drift. No CI minutes. Proper failure alerting.

Step by step

1

Find your scheduled workflows

Look for workflow files with "on: schedule:" triggers in your .github/workflows/ directory.

# .github/workflows/cleanup.yml
on:
  schedule:
    - cron: "0 * * * *"
jobs:
  cleanup:
    steps:
      - run: curl -X POST https://myapp.com/api/cleanup
2

Identify the HTTP endpoint

For workflows that call an HTTP endpoint (via curl or actions/http-client), note the URL, method, and headers.

3

Expose application logic as HTTP endpoints

If your workflow runs application code directly, wrap it in an HTTP route on your deployed app.

// Express
app.post('/api/cleanup', authenticate, async (req, res) => {
  await cleanupOldRecords();
  res.json({ cleaned: true });
});
4

Create JustRun jobs

Create a JustRun job for each workflow: same cron expression, HTTP endpoint URL, and any required auth headers. Use the CLI: npx @justrun/cli create.

5

Disable the GitHub Actions workflow

In each workflow file, remove the "schedule" trigger or add an "if: false" condition to disable it. Keep the workflow for manual/event-triggered runs if needed.

# Disable schedule trigger, keep manual trigger
on:
  workflow_dispatch: {}  # keep this for manual runs
  # schedule: disabled
6

Set up escalation policies

Configure multi-phase alerts in JustRun — notify Slack immediately, page PagerDuty after 5 minutes.

Common questions

How bad is GitHub Actions schedule drift?

During peak load, GitHub Actions schedule triggers can be delayed 15–60+ minutes. JustRun triggers within seconds of the scheduled time.

Can I still use GitHub Actions for CI/CD?

Yes — and you should. GitHub Actions is excellent for CI/CD. Just move the schedule triggers to JustRun, which is purpose-built for reliable scheduling.

What about workflows that need repo access?

Create an HTTP endpoint in your app that performs the action. For things that genuinely need repo access (commit, push), keep using GitHub Actions with a manual trigger or webhook.

Ready to migrate?

Free to start. Import in under 2 minutes.

Start Free