sabato 2 maggio 2020

#A4 - Github action in azione

Questo aggiornamento non porta con se nuove idee o prodotti, ma un esperimento nel mondo dell'automazione legeto allo sviluppo di software su github.

In generale dopo aver chiuso le idee in sospeso sto cercando di focalizzarmi nuovamente su una linea precisa, ma complice il periodo di quarantena, non riesco a "mettere a terra" le idee

Github action sql check


Cos'è ?

Le github action sono "azioni"  che si possono attivare su github nel proprio repository di codice per analizzarlo, compilarlo, validarlo. Eventualmente queste azioni sono pubblicabili in un registro pubblico (ed anche monetizzabili).
Nel mondo dello sviluppo software il tema dell'automazione delle operazioni ripetitive è molto sentito e personalmente al lavoro usiamo un altro strumento ( Jenkins ). L'importanza crescente di github (anche alla luce delle ultime scelte commerciali, che lo rendono gratis per i team senza limiti di dimensione) è tale che un esperimento per capire come funzionano le github action penso sia doveroso per farsi un'opinione informata.
Relativamente al mio esperimento, l'obbiettivo di questa action è al push su github di un file sql, invocare una validazione della sintassi dei comandi sql nel file e ritornare il risultato della validazione.

A che punto siamo ?

L'action è disponibile su github ed è opensource, il repository lo trovate qui.

Attualmente su github trovate una prima rudimentale versione, per cui sono aperto a suggerimenti se avete già visto/implementato una soluzione simile.

L'insieme delle tecnologie coinvolte è variegato:
  • java11
  • gradle
  • validazione dell'sql tramite JsqlParser
  • docker
  • github action

Il controllo è volutamente basilare e migliorabile, quello che mi premeva é provare sul campo quanto sono flessibili le github action e quanto tempo ci vuole per metterle in campo.
Diciamo che in cinque giorni (lavorando un paio di ore la sera), con un pò di sforzo, sono riuscito partendo da zero ad avere qualcosa di funzionante, ma con qualche difficoltà ( con un totale circa di 6-8 h di lavoro).
La prima è proprio la documentazione, sembra ben strutturata, ma è molto frammentaria su molteplici fronti, per cui dubito di usare le github action per progetti più complessi.
Uniamoci poi alcune scelte di modo di lavoro piuttosto forti ( mancanza di un'ide dedicata qui si fa sentire), tra cui l'assurdo problema di come passare variabili di ambiente da uno step all'altro del workflow. Sono io ad aver capito male oppure no ? Qualcuno ha trovato una soluzione su come passare valori da un job all'altro per concatenarli ?

Sono curioso di convidere esperienze su questo, venendo da Jenkins mi trovo decisamente meglio in un ambiente "neutrale" rispetto al repository git, con un supporto minimo da parte di un'ambiente visuale, però il supporto sempre maggiore che hanno le github action ( e github in particolare ) è fonte di confronto naturale, a mio avviso.

Piani futuri

Relativamente a questo esperimento lo considero chiuso, lo espanderò in futuro se avessi bisogno di usare questa action su miei repository su github.

In generale l'obbiettivo del prossimo mese è quello di trovare un nuovo progetto sul quale focalizzare le forze.

Nessun commento:

Posta un commento