A .NET global tool to generate workflows for GitHub Actions based on project configuration and user inputs. The tool is published to NuGet as well
https://www.nuget.org/packages/dotnet-workflow-generator/
The fastest way to use this tool is to install it using the .NET CLI
dotnet tool install --global dotnet-workflow-generator
and if you want to update
dotnet tool update --global dotnet-workflow-generator
After you have the tool installed, you can run it from a inside a directory with a .csproj
in it, or pass the path to one directly
REM Run tool from inside folder
cd C:\dev\somefolderwithaprojectfile
dotnet-workflow-generator
REM Pass path into tool
dotnet-workflow-generator C:\dev\somefolderwithaprojectfile
When you run the tool, it will parse the .csproj
in the folder and prompt you for a target location to publish. You will select an Azure Subscription, a Resource Group, and an Azure Resource. If the app is an Azure Function (determined by the presence of the AzureFunctionsVersion
property) it will only list Function Apps to deploy to, otherwise, it will only list Web Apps.
After you select your target, it will create a sample workflow based on the TargetFramework
specified in the project file.
You can run this code from source after cloning the repo. Once you have the code locally, you can install the tool by running the included .cmd/.sh
file
git clone https://github.com/isaacrlevin/WorkFlowGenerator.git
cd WorkflowGenerator
createtool.cmd
git clone https://github.com/isaacrlevin/WorkFlowGenerator.git
cd WorkflowGenerator
createtool.sh
At this point you will have whatever installed the latest version of the tool in the main
branch. If you want to update the tool in the future, you can run the pack and update commands
dotnet pack
dotnet tool update -g --add-source .\nupkg dotnet-workflow-generator
You can also run the app from Visual Studio/VS Code/.NET CLI with the following command from the folder with WorkflowGenerator.csproj inside it
NOTE: You will need to set a path of the .csproj you want to generate an workflow for using Debug Profiles in VS or passing the path into the command line
dotnet run C:\dev\somefolderwithaprojectfileinit
I would love folks to contribute to this idea. Currently I see 2 main forms of contribution that can take place and below are the steps folks can take
- You found a bug or some other issue (gap in docs, missing tests)
- Create an issue (than a PR?) detailing what your expectation is vs what you are getting
- You have an idea for additional functionality (want to add a new project type or target)
- Create a discussion with your proposal and why you think it is a good idea.
- More than likely I will ask you to do the work, so be ready 😊