53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env bash
 | |
| set -Eeuo pipefail
 | |
| 
 | |
| if [[ ${1:-} == '' ]]; then
 | |
|   # shellcheck source=runner/logger.sh
 | |
|   source logger.sh
 | |
|   log.error "Missing required argument -- '<phase>'"
 | |
|   exit 64
 | |
| fi
 | |
| 
 | |
| if [[ ${RUNNER_STATUS_UPDATE_HOOK:-false} == true ]]; then
 | |
| 
 | |
|     apiserver=https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}
 | |
|     serviceaccount=/var/run/secrets/kubernetes.io/serviceaccount
 | |
|     namespace=$(cat ${serviceaccount}/namespace)
 | |
|     token=$(cat ${serviceaccount}/token)
 | |
|     phase=$1
 | |
|     message=${2:-}
 | |
| 
 | |
|     data=$(jq -n --arg phase "$phase" \
 | |
|       --arg message "$message" \
 | |
|       --arg workflow_repository "${GITHUB_REPOSITORY:-}" \
 | |
|       --arg workflow_repository_owner "${GITHUB_REPOSITORY_OWNER:-}" \
 | |
|       --arg workflow_name "${GITHUB_WORKFLOW:-}" \
 | |
|       --arg workflow_run_id "${GITHUB_RUN_ID:-}" \
 | |
|       --arg workflow_run_number "${GITHUB_RUN_NUMBER:-}" \
 | |
|       --arg workflow_job "${GITHUB_JOB:-}" \
 | |
|       --arg workflow_action "${GITHUB_ACTION:-}" \
 | |
|       '
 | |
|        .status.phase = $phase
 | |
|      | .status.message = $message
 | |
|      | .status.workflow.name = $workflow_name
 | |
|      | .status.workflow.runID = $workflow_run_id
 | |
|      | .status.workflow.runNumber = $workflow_run_number
 | |
|      | .status.workflow.repository = $workflow_repository
 | |
|      | .status.workflow.repositoryOwner = $workflow_repository_owner
 | |
|      | .status.workflow.job = $workflow_job
 | |
|      | .status.workflow.action = $workflow_action
 | |
|       ')
 | |
|       
 | |
|     echo "$data" | curl \
 | |
|         --cacert ${serviceaccount}/ca.crt \
 | |
|         --data @- \
 | |
|         --noproxy '*' \
 | |
|         --header "Content-Type: application/merge-patch+json" \
 | |
|         --header "Authorization: Bearer ${token}" \
 | |
|         --show-error \
 | |
|         --silent \
 | |
|         --request PATCH \
 | |
|         "${apiserver}/apis/actions.summerwind.dev/v1alpha1/namespaces/${namespace}/runners/${HOSTNAME}/status" \
 | |
|         1>/dev/null
 | |
| fi
 |