Workflow Manager is the result
of an innovation week, or hackweek as we at Codelabs call it. It's a solution
for scheduling workflows (a.k.a
workflows) in Github.
Unlike Github's built-in solution for scheduling workflows, Workflow Manager is more flexible and can schedule workflows in a more advanced way.
The problem
Github's built-in solution for scheduling workflows uses cron expressions, which is a good solution for simple scheduling. But if you want to schedule workflows in a more advanced way, such as:
- Scheduling workflows to run at specific times on specific days
- Scheduling workflows to run only on weekdays
- Scheduling workflows to run only during certain months
- Being able to see an overview of when workflows are scheduled to run
Then Github's built-in solution is not sufficient.
The solution
Workflow Manager is a web application that provides a user-friendly interface for scheduling workflows in Github. It uses Github's REST API to trigger workflows and Github's webhooks to listen for workflow events.
The application is built with Next.js and Tailwind CSS and uses Supabase as database.
Features
- Schedule workflows: Schedule workflows to run at specific times on specific days
- Calendar view: See an overview of when workflows are scheduled to run
- Workflow history: See a history of when workflows have run
- Multiple repositories: Manage workflows across multiple repositories
- User management: Multiple users can use the same instance
How it works
The application works by storing scheduled workflows in a database and then using a cron job to check if any workflows should be triggered. When a workflow should be triggered, the application uses Github's REST API to trigger the workflow.
Try it out
Workflow Manager is open source and available on Github. You can also try out a demo instance here.
Future plans
We have several ideas for how to develop Workflow Manager further:
- Support for more advanced scheduling rules
- Integration with other CI/CD platforms
- Support for workflow dependencies
- Better visualization of workflow history
If you have ideas or want to contribute, we welcome contributions via Github!