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
Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.