Initial commit

This commit is contained in:
pmo-actions
2025-04-14 08:29:20 +02:00
commit 35d4a20d11
2 changed files with 99 additions and 0 deletions

29
README.md Normal file
View 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
View 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