generated from pmo-actions/healthchecks-ping
Initial commit
This commit is contained in:
29
README.md
Normal file
29
README.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Les pmo-actions
|
||||
|
||||
Les actions de la *petite maison orange* sont des actions réutilisables dans un environnement Gitea.
|
||||
Elles sont avant tout faites pour me faciliter la vie dans la gestion de mon nuage personnel.
|
||||
|
||||
Pour les inclures utiliser la syntaxe:
|
||||
|
||||
```yaml
|
||||
uses: https://gargoton.petite-maison-orange.fr/pmo-actions/ACTION@main
|
||||
```
|
||||
|
||||
En remplaçant `ACTION` par l'action désirée.
|
||||
|
||||
## L'action `healthchecks-ping`
|
||||
|
||||
Elle a pour but d'envoyer un ping sur un serveur [`healthchecks.io`](https://healthchecks.io/). Elles acceptent
|
||||
quatre valeurs en entrée, dont deux premières sont obligatoires.
|
||||
|
||||
- `server`: l'adresse du serveur inclue le protocole
|
||||
par exemple: `https://monserveur.mondomaine.io`
|
||||
- `uuid`: l'identifiant hexadecimal du service. l'*uuid* sera combiné avec
|
||||
l'adresse du serveur pour construire l'URL à sonner:
|
||||
`$serveur/ping/$uuid`
|
||||
|
||||
- `command`: cette valeur peut prendre 4 valeurs : `start`|`log`|`fail`|`stop`.
|
||||
|
||||
- `message`: Le message qui sera logguer lors du ping sur le serveur [`healthchecks.io`](https://healthchecks.io/).
|
||||
|
||||
|
||||
70
action.yaml
Normal file
70
action.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
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}"
|
||||
;;
|
||||
*)
|
||||
echo "::error::Commande invalide: $COMMAND"
|
||||
exit 1
|
||||
;;
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user