Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
GitHub Actions Triggers: push, pull_request, workflow_dispatch, schedule and Filters
The events and filters under on decide when a workflow runs: branches, tags, paths and ! negation for push and pull_request, activity types, workflow_dispatch inputs, timezone-aware schedules, workflow_run, repository_dispatch and merge_group. With real output we show the trap of reading booleans via github.event.inputs, the trigger mistakes actionlint catches, and why act does not evaluate filters.
Cron Expressions: Unix 5-Field, 6-Field with Seconds, Quartz Format and Time Zone/DST Pitfalls
Unix cron has 5 fields, Quartz wants 6–7 fields starting with seconds and counts weekdays as 1=Sunday; Quartz 4 rejects "0 0 * * *" with the default parser and accepts it with CronFormat.Unix. Across DST, a daily 02:30 job runs once at 03:00 in spring and only once in autumn, while interval jobs run twice in the repeated hour. You can write your own cron scheduler on TimeProvider and test it with FakeTimeProvider.