Feature Request: Schedule a Future Workflow Run with User-Provided Inputs #204703
Replies: 3 comments 1 reply
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
|
there’s still no native “run this workflow once at 14:00 next thursday with these inputs” button. workaround that usually works:
don’t sleep inside a job until the target time. you’ll burn minutes and still hit the 6h job timeout. if this is a one-off, the even dumber version is: set a temporary cron for that exact utc minute, run once, then delete the workflow. messy, but zero extra infra. so: +1 on the feature request. until github ships it, “dispatch now” vs “cron + stored inputs + gh workflow run” is the practical split. |
|
A practical approach would be to keep the actual deployment workflow unchanged and add a lightweight scheduler that triggers it at the requested time. For example, the real workflow can continue using name: Deploy
on:
workflow_dispatch:
inputs:
environment:
required: true
type: string
version:
required: true
type: string
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy
run: |
echo "Deploying ${{ inputs.version }} to ${{ inputs.environment }}"A separate scheduler workflow could periodically check whether a stored request is due and then dispatch the real workflow with the saved inputs: name: Scheduled Dispatcher
on:
schedule:
- cron: "*/10 * * * *"
jobs:
dispatch:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- name: Check scheduled request
run: |
# Read scheduled_at and workflow inputs from the chosen
# storage mechanism and dispatch when the time is reached.
echo "Check whether a workflow run is due"The important part is that the scheduler should store the requested execution time and inputs as data, rather than keeping a runner alive with This would also make cancellation and duplicate-run prevention easier to implement. A native "Schedule Run" feature would still be preferable because GitHub could manage the scheduling, UI, cancellation, permissions, and audit trail directly. |
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Bug
💬 Feature/Topic Area
ARC (Actions Runner Controller)
Discussion Details
Problem
Many deployment workflows require execution at a specific future date and time. Today, GitHub Actions allows manual execution through
workflow_dispatchand recurring schedules throughcron, but there is no native way to configure a one-time future execution with custom inputs.As a result, teams must either:
This adds operational overhead for deployment and release management.
Proposed Solution
Add a "Schedule Run" option when manually dispatching a workflow.
Users would:
GitHub Actions would then create a scheduled workflow run that automatically starts at the specified time with the provided inputs.
Example UI
Benefits
Possible Enhancements
Use Cases
Expected Behavior
After providing workflow inputs and selecting a future execution time, GitHub Actions should automatically trigger the workflow at the scheduled time using the exact inputs supplied during scheduling.
This would make GitHub Actions significantly more useful for release and deployment orchestration without requiring additional automation tooling.
All reactions