• Stars
    star
    318
  • Rank 131,126 (Top 3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A GitHub Action for triggering workflows, using the `workflow_dispatch` event

GitHub Action for Dispatching Workflows

This action triggers another GitHub Actions workflow, using the workflow_dispatch event.
The workflow must be configured for this event type e.g. on: [workflow_dispatch]

This allows you to chain workflows, the classic use case is have a CI build workflow, trigger a CD release/deploy workflow when it completes. Allowing you to maintain separate workflows for CI and CD, and pass data between them as required.

For details of the workflow_dispatch even see this blog post introducing this type of trigger

Note 1. GitHub now has a native way to chain workflows called "reusable workflows". See the docs on reusing workflows. This approach is somewhat different from workflow_dispatch but it's worth keeping in mind.

Note 2. The GitHub UI will report flows triggered by this action as "manually triggered" even though they have been run programmatically via another workflow and the API.

Note 3. If you want to reference the target workflow by ID, you will need to list them with the following REST API call curl https://api.github.com/repos/{{owner}}/{{repo}}/actions/workflows -H "Authorization: token {{pat-token}}"

Action Inputs

workflow

Required. The name, filename or ID of the workflow to be triggered and run. All three possibilities are used when looking for the workflow. e.g.

workflow: My Workflow
# or
workflow: my-workflow.yaml
# or
workflow: 1218419

inputs

Optional. The inputs to pass to the workflow (if any are configured), this must be a JSON encoded string, e.g. { "myInput": "foobar" }

ref

Optional. The Git reference used with the triggered workflow run. The reference can be a branch, tag, or a commit SHA. If omitted the context ref of the triggering workflow is used. If you want to trigger on pull requests and run the target workflow in the context of the pull request branch, set the ref to ${{ github.event.pull_request.head.ref }}.

repo

Optional. The default behavior is to trigger workflows in the same repo as the triggering workflow, if you wish to trigger in another GitHub repo "externally", then provide the owner + repo name with slash between them e.g. microsoft/vscode.

  • When triggering across repos like this, you must provide a token (see below), or you will get an "Resource not accessible by integration" error.
  • If the default branch in the other repo is different from the calling repo, you must provide ref input also, or you will get a "No ref found" error.

token

Optional. By default the standard github.token/GITHUB_TOKEN will be used and you no longer need to provide your own token here. However when using the repo option, you must provide a token here, create a PAT token with repo rights, and pass it here via a secret. This options is also left for backwards compatibility reasons.

Action Outputs

This Action emits a single output named workflowId.

Example usage

- name: Invoke workflow without inputs
  uses: benc-uk/workflow-dispatch@v1
  with:
    workflow: My Workflow
- name: Invoke workflow with inputs
  uses: benc-uk/workflow-dispatch@v1
  with:
    workflow: Another Workflow
    inputs: '{ "message": "blah blah", "something": true }'
- name: Invoke workflow in another repo with inputs
  uses: benc-uk/workflow-dispatch@v1
  with:
    workflow: my-workflow.yaml
    repo: benc-uk/example
    inputs: '{ "message": "blah blah", "something": false }'

More Repositories

1

kubeview

Kubernetes cluster visualiser and graphical explorer
Vue
921
star
2

k6-reporter

Output K6 test run results as formatted & easy to read HTML reports
EJS
369
star
3

icon-collection

Azure & Microsoft SVG Icon Collection
HTML
241
star
4

armview-vscode

Graphically display ARM templates in VS Code with an interactive map style view
TypeScript
142
star
5

python-demoapp

Simple Python Flask web application designed for running in containers for demos
JavaScript
128
star
6

dapr-store

Sample application showcasing the use of Dapr to build microservices based apps
Go
124
star
7

super-dungeon-delve

2D retro style dungeon game
GDScript
117
star
8

vuego-demoapp

Simple Golang and Vue.js SPA demo for deploying to Azure, Docker etc
Vue
115
star
9

smilr

Microservices reference app showcasing a range of technologies, platforms & methodologies
JavaScript
100
star
10

chatr

Chat app using Azure Web PubSub, Static Web Apps and other Azure services
JavaScript
70
star
11

nodejs-demoapp

Simple demo Node.js Express web app for deploying to Azure, Docker etc
JavaScript
45
star
12

msal-graph-vue

Vue.js sample app showing use of MSAL for authentication and calling MS Graph APIs
Vue
35
star
13

htmx-go-chat

Chat app written in Go with HTMX and SSE
Go
33
star
14

dotnet6-minimal

Quick and dirty minimal .NET 6 web app
C#
28
star
15

postman-prometheus

Run Postman collections continuously and export results as Prometheus metrics
JavaScript
28
star
16

dotnet-demoapp

.NET 6 demo web app for deploying to Azure, Docker etc
C#
26
star
17

kube-workshop

A hands-on workshop intended to get people comfortable in working with Kubernetes and deploying applications
25
star
18

touchmidi

Flexible HTML5 based touch based control surface for MIDI
JavaScript
24
star
19

armview-web

Standalone web version of github.com/benc-uk/armview-vscode
EJS
22
star
20

k6-prometheus-exporter

Export k6 metrics and load test data into Prometheus
Go
20
star
21

rayscale

Microservices based, distributed ray tracer designed to run in containers
TypeScript
20
star
22

tools-install

Setup scripts for various dev tools, utilities, SDKs and CLI stuff
Shell
19
star
23

bicep-iac

My set of Azure Bicep templates and modules
Bicep
17
star
24

hcl2-parser

HCLv2 parser for JavaScript
JavaScript
16
star
25

go-rest-api

Boilerplate & template starter for creating a REST based HTTP microservice in Go
Go
15
star
26

locust-reporter

Generate HTML reports from Locust load test output
Go
15
star
27

azure-arm

My ARM template library
Shell
14
star
28

batcomputer

A working example of DevOps & operationalisation applied to Machine Learning and AI
Python
13
star
29

gofract

Mandelbrot and Julia fractals rendered in real-time using Go
Go
13
star
30

pikube

Building a Kubernetes cluster on the Raspberry Pi
Python
12
star
31

keycloak-helm

Helm chart for Keycloak
Smarty
10
star
32

terraform-mgmt-bootstrap

Bootstrap core Azure state & resources using Terraform for use with Azure DevOps
HCL
9
star
33

serverless-cosmos-lab

Azure computer vision AI lab using LogicApps, Cognitive Services, CosmosDB and Web Apps
JavaScript
9
star
34

azure-functions

!! OLD PLEASE DON'T USE !! Demo and example Azure Functions in various languages
C#
9
star
35

kube-primer

Kubernetes Technical Primer
8
star
36

pod-kicker

A Kubernetes sidecar to watch for file changes and restart deployments and pods
Go
7
star
37

dotfiles

My personal dotfiles
Shell
7
star
38

aks-samples

Samples, feature demos and examples for Azure Kubernetes Service (AKS)
Shell
6
star
39

touchmidi-old

Flexible HTML5 based touch based control surface for MIDI
JavaScript
6
star
40

java-demoapp

Simple demo Java Spring Boot web app for deploying to Azure, Docker etc
Java
6
star
41

melkors-oubliette

A 3D dungeon crawler game inspired by Dungeon Master & Eye Of The Beholder
GDScript
6
star
42

devcontainers

Dockerfile
5
star
43

generative-music

Procedural and generative music tools and things
HTML
5
star
44

msal-graph-react

React sample app showing use of MSAL for authentication and calling MS Graph APIs
JavaScript
5
star
45

dart-raytracer

A raytracer written in Dart
Dart
4
star
46

goat-bot

Microsoft Bot Framework working example & demo - Goat Bot!
JavaScript
4
star
47

face-vision-app

Azure Cognitive Face/Vision APIs - Pure HTML5/JS Client
JavaScript
4
star
48

azure-samples

General collection of samples and snippets for Azure
PowerShell
4
star
49

csa-widgets

Dashboard Widgets for HP Cloud Service Automation
JavaScript
4
star
50

serverless-cognitive

Computer vision AI lab using Azure Functions and Cognitive Services
JavaScript
4
star
51

dungeon-game-old

C#
3
star
52

simple-slides

Simple slide presenter written in HTML5 & JS
HTML
3
star
53

angular-demoapp

Demo app written in Angular 4 using Node.js and Material Components
TypeScript
3
star
54

azure-devops-core-docker

End to end DevOps exercise with .NET Core, Docker, VSTS in Azure
Batchfile
3
star
55

dapr-dotnet-starter

Simple learning & getting started example for .NET and Dapr
C#
2
star
56

doom-lite

A learning exercise in writing a simple retro style FPS
JavaScript
2
star
57

midi-toolkit

A HTML5 & JS based static web app for working with MIDI
JavaScript
2
star
58

caster

Retro style 90s FPS with a fantasy theme, written in Go
Go
2
star
59

nanoproxy

A simple HTTP reverse proxy & Kubernetes ingress controller written in Go as a learning exercise
Go
2
star
60

nanomon

Lightweight network and HTTP monitoring system, designed to be run with containers & Kubernetes
Go
2
star
61

serverless-fractal-bot

Fractals done in serverless and then tweeted to the world
JavaScript
2
star
62

tomb-viewer

Rendering Tomb Raider levels in TypeScript and WebGL
TypeScript
1
star
63

taskr

Demonstrator for Static Web Apps with Functions and Cosmos DB
JavaScript
1
star
64

project-starter

A base template to be used for any project
Makefile
1
star
65

cassandra-prototype

Experimenting with Cassandra
Shell
1
star
66

food-truck

Food Truck Challenge
Go
1
star
67

hivealive

IoT on Azure Proof Of Concept
JavaScript
1
star
68

gitops-test

Shell
1
star
69

mockery

API Server Mocking in Go
Go
1
star
70

azure-iot-demo

Azure IoT Demo using IoT Hubs, Service Bus and Functions
JavaScript
1
star
71

nanotracker

Retro styled music tracker in HTML5 & modern JavaScript
JavaScript
1
star
72

cse-onboarding

CSE Tech On-Boarding FY23
1
star
73

go-acs-client

Client SDK for the Azure Communication Services API
Go
1
star
74

htmx-go-todo

An example of a simple HTMX app built using Go
Go
1
star
75

skytap-ansible

Skytap module for Ansible with some example playbooks
Python
1
star
76

dapr-gateway-hack

Experiment and hack for Dapr service invocation across networks and clusters
Go
1
star
77

gh-experiment

1
star
78

fractal-bot-go

Fractals & Twitter bot done with Azure Functions and Go custom handlers
Go
1
star
79

dotfiles-kit

Build your own dotfiles repo
Shell
1
star
80

grpc-experiment

Go
1
star
81

benc.dev

blog & personal/vanity site
HTML
1
star
82

gsots3d

Library for building & rendering 3D stuff on the web
JavaScript
1
star
83

rust-wasm-fractals

Mandelbrot & Julia fractals rendered with Rust with WASM & JS
JavaScript
1
star
84

nodejs-api-starter

Starter template app for a Node.js CRUD REST API using MongoDB & Mongoose
JavaScript
1
star
85

link-shortener

Link & URL shortener
Shell
1
star