@@ -6,10 +6,9 @@ function usage_docs {
66 echo " owner: keithconvictional"
77 echo " repo: myrepo"
88 echo " github_token: \$ {{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }}"
9+ echo " workflow_file_name: main.yaml"
910}
1011
11- # TODO - Add client_payload
12-
1312function validate_args {
1413 wait_interval=10
1514 if [ " $INPUT_WAITING_INTERVAL " ]
@@ -46,11 +45,18 @@ function validate_args {
4645 event_type=$INPUT_EVENT_TYPE
4746 fi
4847
49- ref=" master"
50- if [ $INPUT_REF ]
48+ if [ -z $INPUT_WORKFLOW_FILE_NAME ]
5149 then
52- ref=$INPUT_REF
53- fi
50+ echo " Error: Workflow File Name is required"
51+ usage_docs
52+ exit 1
53+ fi
54+
55+ client_payload=$( echo ' {}' | jq)
56+ if [ " $INPUT_CLIENT_PAYLOAD " ]
57+ then
58+ client_payload=$( echo $INPUT_CLIENT_PAYLOAD | jq)
59+ fi
5460}
5561
5662function trigger_workflow {
@@ -59,27 +65,34 @@ function trigger_workflow {
5965 -H " Accept: application/vnd.github.everest-preview+json" \
6066 -H " Content-Type: application/json" \
6167 -H " Authorization: Bearer ${INPUT_GITHUB_TOKEN} " \
62- --data " {\" event_type\" : \" ${event_type} \" , \" client_payload\" : {} }"
68+ --data " {\" event_type\" : \" ${event_type} \" , \" client_payload\" : $client_payload }"
6369 sleep $wait_interval
6470}
6571
6672function wait_for_workflow_to_finish {
6773 # Find the id of the last build
68- last_run_id =$( curl -X GET " https://api.github.com/repos/$INPUT_OWNER /$INPUT_REPO /commits/ $ref /check- runs" \
74+ last_workflow =$( curl -X GET " https://api.github.com/repos/$INPUT_OWNER /$INPUT_REPO /actions/workflows/ $INPUT_WORKFLOW_FILE_NAME / runs" \
6975 -H ' Accept: application/vnd.github.antiope-preview+json' \
70- -H " Authorization: Bearer $INPUT_GITHUB_TOKEN " | jq ' [.check_runs[].id] | first' )
71- echo " The job id is [$last_run_id ]."
76+ -H " Authorization: Bearer $INPUT_GITHUB_TOKEN " | jq ' [.workflow_runs[]] | first' )
77+ last_workflow_id=$( echo $last_workflow | jq ' .id' )
78+ echo " The workflow id is [$last_workflow_id ]."
7279 echo " "
73- conclusion=$( curl -X GET " https://api.github.com/repos/$INPUT_OWNER /$INPUT_REPO /check-runs/$last_run_id " -H ' Accept: application/vnd.github.antiope-preview+json' -H " Authorization: Bearer $INPUT_GITHUB_TOKEN " | jq ' .conclusion' )
80+ conclusion=$( echo $last_workflow | jq ' .conclusion' )
81+ status=$( echo $last_workflow | jq ' .status' )
7482
75- while [[ $conclusion == " null" ]]
83+ while [[ $conclusion == " null" && $status != " \" completed \" " ]]
7684 do
7785 sleep $wait_interval
78- conclusion=$( curl -X GET " https://api.github.com/repos/$INPUT_OWNER /$INPUT_REPO /check-runs/$last_run_id " -H ' Accept: application/vnd.github.antiope-preview+json' -H " Authorization: Bearer $INPUT_GITHUB_TOKEN " | jq ' .conclusion' )
86+ workflow=$( curl -X GET " https://api.github.com/repos/$INPUT_OWNER /$INPUT_REPO /actions/workflows/$INPUT_WORKFLOW_FILE_NAME /runs" \
87+ -H ' Accept: application/vnd.github.antiope-preview+json' \
88+ -H " Authorization: Bearer $INPUT_GITHUB_TOKEN " | jq ' .workflow_runs[] | select(.id == ' $last_workflow_id ' )' )
89+ conclusion=$( echo $workflow | jq ' .conclusion' )
90+ status=$( echo $workflow | jq ' .status' )
7991 echo " Checking conclusion [$conclusion ]"
92+ echo " Checking status [$status ]"
8093 done
8194
82- if [[ $conclusion == " \" success\" " ]]
95+ if [[ $conclusion == " \" success\" " && $status == " \" completed \" " ]]
8396 then
8497 echo " Yes, success"
8598 else
0 commit comments