DEV Community

Roberto Luna
Roberto Luna

Posted on

TL;DR

TL;DR

This article details the technical implementation of staggering cron jobs in GitHub Actions to avoid simultaneous triggers. I modified two workflow files, .github/workflows/bluesky-daily.yml and .github/workflows/daily-content.yml, to offset their schedules by 5 minutes, ensuring that the workflows do not interfere with each other. This change improves the reliability of our automated content publishing pipeline.

The Problem

The issue arose from having multiple GitHub Actions workflows triggered at the same minute. Specifically, both bluesky-daily.yml and daily-content.yml were set to run at 17:00 UTC (11:00 AM Cancun time). This synchronization caused GitHub Actions to skip one of the workflows, leading to inconsistent content publishing. The error manifested as missing posts on Bluesky and discrepancies in our content automation logs.

What I Tried First

Initially, I reviewed the workflow configurations to ensure there were no syntax errors or overlapping triggers. However, the issue persisted, indicating that the problem lay in the scheduling rather than the workflow definitions themselves. I considered adjusting the cron expressions to stagger the triggers, which would prevent GitHub Actions from skipping either workflow.

The Implementation

To resolve the issue, I updated the cron expressions in both workflow files. The original bluesky-daily.yml file contained:

name: Bluesky — Daily Posts

on:
  schedule:
    # 11:00 AM Cancun (CDT UTC-6) = 17:00 UTC
    - cron: "0 17 * * *"
Enter fullscreen mode Exit fullscreen mode

I modified it to trigger 5 minutes later:

name: Bluesky — Daily Posts

on:
  schedule:
    # 11:05 AM Cancun (CDT UTC-6) = 17:05 UTC
    - cron: "5 17 * * *"
Enter fullscreen mode Exit fullscreen mode

Similarly, I updated the daily-content.yml file from:

name: Medium + Substack + Email — Daily Content

on:
  schedule:
    # 11:00 AM Cancun = 17:00 UTC
    - cron: "0 17 * * *"
Enter fullscreen mode Exit fullscreen mode

to:

name: Medium + Substack + Email — Daily Content

on:
  schedule:
    # 11:10 AM Cancun = 17:10 UTC
    - cron: "10 17 * * *"
Enter fullscreen mode Exit fullscreen mode

These changes ensure that the workflows are triggered 5 minutes apart, preventing GitHub Actions from skipping either of them.

Key Takeaway

The key takeaway from this experience is the importance of staggering cron job triggers in GitHub Actions to avoid simultaneous executions, which can lead to skipped workflows. By offsetting the schedules, we can ensure reliable and consistent execution of automated tasks.

What's Next

Next, I plan to monitor the workflows' performance and logs to ensure that the staggering of cron jobs continues to resolve the issue. Additionally, I will explore implementing more advanced scheduling strategies, such as using a centralized scheduling service, to further enhance the reliability and flexibility of our content automation pipeline.

vibecoding #buildinpublic #DevOps #Productivity #GitHubActions


Part of my Build in Public series — sharing the real process of building SaaS projects from Playa del Carmen, México.

Repo: zaerohell/content-automation · 2026-06-29

#playadev #buildinpublic

Top comments (0)