Files
healthchecks-ping/action.yaml
2025-04-13 23:55:27 +02:00

67 lines
1.4 KiB
YAML

name: 'Ping a Healthchecks.io server'
description: 'Description de l action'
author: 'Eric Coissac'
inputs:
server:
description: 'Address of the Healthchecks server'
required: true
uuid:
description: 'Deuxième paramètre'
required: true
command:
description: 'Command to sen to the server can be nothing, start, log or fail'
required: false
default: 'stop'
message:
description: 'Message to log with the ping'
required: false
default: ''
runs:
using: 'composite'
steps:
- name: Ping the server
shell: bash
run: |
HEALTHPOINT="${{ inputs.server }}/ping/${{ inputs.uuid }}"
OPTIONS="-fsS -m 10 --retry 5"
MESSAGE="${{ inputs.message }}"
COMMAND="${{ inputs.command }}"
CURL_DATA=()
if [[ -n "$MESSAGE" ]]; then
CURL_DATA+=(--data-raw "$MESSAGE")
fi
case "$COMMAND" in
start | log | fail)
URL="${HEALTHPOINT}/$COMMAND"
;;
stop)
URL="${HEALTHPOINT}"
;;
esac
curl_cmd=(
curl
$OPTIONS
"${CURL_DATA[@]}"
"$URL"
)
echo "Commande exécutée: ${curl_cmd[*]}"
"${curl_cmd[@]}" # Exécution sans eval
if [[ "$COMMAND" == "fail" ]] ; then
exit 1
fi
exit 0