Hey folks! π
In this blog post I would like to talk about GitHub Actions workflows and how I believe they could become much better. Over the last few years I have worked with many repos and I noted how much time I spent on creating and modifying YAML files for GitHub workflows, rather than working on the actual project.
So in true developer fashion, I am working on a solution called Actionforge. Below is a short dive into what I am aiming to solve and how.
What is Actionforge?
Using Actionforge, you can visually create and modify your workflow within a user-friendly editor in VS Code. Each node of your graph represents a GitHub Action. Together, they form what I call an 'Action Graph'. Check out an example here.
Once your action graph is ready, you can commit it to your repository.
How to execute an Action Graph as a GitHub workflow?
To execute an action graph as your workflow, you simply create a simple GitHub workflow that includes a single step with the actionforge/action. Then you point to the Action Graph file you want to run. After this setup, you can edit your graph from the Actionforge UI.
Here is a simple example to execute an Action Graph:
# Beginning of your workflow.yml
jobs:
run-graph:
- name: Build and deploy my app
uses: actionforge/action@0.45.3
with:
graph_file: ./github/workflows/graphs/my-graph.yml
# End
The Linear Limitation
Traditional GitHub workflows follow a linear execution order from top to bottom, which can be restrictive. In contrast, Actionforge's Action Graphs enable more complex and versatile node setups with different flow like if-conditions, for-loops, switches and more.
Executing Action Graphs directly on your GH Runners
Actionforge does not depend on external cloud services. actionforge/action
serves as an interpreter, converting your visually designed graph into a sequence of GitHub Action nodes that execute as usual on your designated GitHub runners.
All repositories will be made public in December. I would love to hear your story. Share your GitHub Actions workflow challenges. Check out Actionforge.
Thanks for reading β€οΈ
Top comments (2)
I find the idea behind it very interesting and I'm curious to see how it can be utilized.
Thanks Thomas! Looking forward to get the first release out :-)