Eseguire script pre e post esecuzione di un workflow di GitHub

di Matteo Tumiati, in DevOps,

La telemetria è una implementazione fondamentale per sapere se le nostre applicazioni, servizi o altro, stanno funzionando come si deve. Per questo è altrettanto utile integrarla nei nostri workflow di GitHub, perchè così possiamo sapere, per esempio esportandoci dei dati in tool di analisi come Power BI, quanti dei job eseguiti sono falliti, quanti sono completati con successo, il numero di esecuzioni per workflow, il tempo medio di esecuzione e così via, utile anche per stimare i costi e le varie ottimizzazioni da eseguire.

Purtroppo, al momento, in GitHub non è previsto alcun strumento di telemetria out-of-the-box. Tuttavia, se eseguiamo i nostri workflow su runner self-hosted (quindi quelli gestiti da noi), possiamo iniettare alcuni script pre/post esecuzione dei job, così da poter eseguire la nostra logica custom.

Ci sono solamente due requisiti. Il primo consiste nel creare a priori lo script da eseguire e di caricarlo nel self-hosted runner in una qualsiasi folder (ad eccezione di quella del runner), il secondo è l'impostazione delle variabili ACTIONS_RUNNER_HOOK_JOB_STARTED o ACTIONS_RUNNER_HOOK_JOB_COMPLETED a seconda di quando lo script custom deve girare (prima che il job inizi, oppure terminata la sua esecuzione).

ACTIONS_RUNNER_HOOK_JOB_STARTED=/opt/runner/cleanup_script.sh

Non è previsto alcun timeout di default, quindi l'esecuzione andrà avanti all'infinito qualora ci fossero dei problemi e non fosse prevista lato nostro una terminazione forzata, con tutte le conseguenze del caso (job in pending, runner occupato, utenti bloccati, ecc).

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi