trigger-dispatch-run.sh 1.31 KB
Newer Older
1
2
3
4
5
6
#!/bin/bash
#
# [description]
#     Trigger manual workflow run by a dispatch event.
#
# [usage]
7
#     trigger-dispatch-run.sh <PR_URL> <COMMENT_ID> <DISPATCH_NAME>
8
9
10
11
12
13
14
#
# PR_URL: URL of pull request from which dispatch is triggering.
#
# COMMENT_ID: ID of comment that is triggering a dispatch.
#
# DISPATCH_NAME: Name of a dispatch to be triggered.

15
set -e -E -u -o pipefail
16
17
18

if [ -z "$GITHUB_ACTIONS" ]; then
  echo "Must be run inside GitHub Actions CI"
19
  exit 1
20
21
22
23
fi

if [ $# -ne 3 ]; then
  echo "Usage: $0 <PR_URL> <COMMENT_ID> <DISPATCH_NAME>"
24
  exit 1
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fi

pr_url=$1
comment_id=$2
dispatch_name=$3

pr=$(
  curl -sL \
    -H "Accept: application/vnd.github.v3+json" \
    -H "Authorization: token $SECRETS_WORKFLOW" \
    "$pr_url"
)
data=$(
  jq -n \
    --arg event_type "$dispatch_name" \
40
41
42
    --arg pr_number "$(echo "$pr" | jq '.number')" \
    --arg pr_sha "$(echo "$pr" | jq '.head.sha')" \
    --arg pr_branch "$(echo "$pr" | jq '.head.ref')" \
43
44
45
46
47
48
49
50
51
    --arg comment_number "$comment_id" \
    '{"event_type":$event_type,"client_payload":{"pr_number":$pr_number,"pr_sha":$pr_sha,"pr_branch":$pr_branch,"comment_number":$comment_number}}'
)
curl -sL \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token $SECRETS_WORKFLOW" \
  -d "$data" \
  "${GITHUB_API_URL}/repos/microsoft/LightGBM/dispatches"