GitHub Actions On Demand
Date Published: 27 September 2021
I use GitHub Actions a lot. They're a great tool for performing continuous integration (CI) and continuous deployment (CD) for your applications. However, by default they typically only are triggered by changes to your application's source code in the form of commits and/or merges/rebases. This means that to trigger a particular workflow, you usually need to make a commit, and obviously this can be a hassle in a number of situations.
Fortunately, GitHub supports triggering GitHub Actions on demand. To trigger any GitHub Action on demand, you simply need to add a keyword to its YML file, called workflow_dispatch
. Personally, I have a hard time remembering the term "workflow dispatch", which is why I usually end up searching for "on demand" and not immediately finding anything. I'm actually publishing this just so that I can google "ardalis github actions on demand" and find this next time I need it. :)
The documentation for GitHub Actions' "workflow dispatch" trigger show how to create a manually triggered workflow. However, they don't show how you add a workflow_dispatch
trigger to a GitHub action that already has other triggers, which may not be obvious.
I've figured this out with some of my various Ardalis NuGet Packages, so here is an example from my most popular NuGet Package, Ardalis.GuardClauses:
name: .NET Core
on:
workflow_dispatch:
branches: [ main ]
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.402
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
You'll find the latest full GitHub action for GuardClauses here. While you're there, be sure to add a ⭐ to the repo! Thanks!
Workflow Dispatch and On Demand GitHub Actions
If you have multiple triggers, you can just add workflow_dispatch
to the list in the YAML file. This will let you trigger the workflow manually. What does that look like? You just go to the actions tab, choose the workflow, and you should see an option to "Run workflow". You can further choose which branch to run it against, if you like.
That's all you need to be able to run your actions any time you like, without the need to add bogus commits!
Category - Browse all categories
About Ardalis
Software Architect
Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.