GitHub Actions: Attivare la modalità CRON

Nel corso dello scorso anno avevo già spiegato come utilizzare le GitHub Actions in altri articoli. Nel corso di questo articolo voglio mostrare come utilizzare la modalità di build ad intervalli temporali sfruttando il nostro amico CRON per definire la frequenza e l’orario.

GitHub Actions: push branches

Ora vi mostro in maniera molto sintetica come cambiare la vostra GitHub Actions per effettuare il build automatico ad un determinato orario.

Per mostravi la differenza partiamo dalla configurazione precedente creata nello stato iniziale del build.

1
2
3
4
on:	
  push:
    branches:
    - master

In questo modo la build veniva generata nel momento in cui scattava un merge (o Pull Request aprovvata) sul ramo master.

GitHub Actions: schedule cron

Adesso entriamo nel vivo della modifica: come posso ottenere una GitHub Actions che scatta (ad esempio) ogni notte alle 04:00 AM?

Per prima cosa dobbiamo smettere di utilizzare push introducendo il termine schedule

1
2
3
on:	
  schedule:
    - cron:  '0 4 * * *'

Al suo interno metteremo cron e definiremo l’orario di build.

I valori definiti all’interno del valore cron sono i seguenti ed in questo ordine

FromToValue OfNote
059minute
023hour
131day
112month1 = JAN / 12 = DEC
06day of the week0 = SUN - 6 = SAT

Tips:

  • Il month parte da 1 per January ed arriva a 12 per december
  • Il day of the week parte da zero per Sunday ed arriva a 6 per Saturday

Volete un esempio pratico? Ha senso che la precedente build funzioni tutti i giorni anche sabato e domenica? Il sito necessita’ di nuove pubblicazioni nei giorni del fine settimana? Nel mio caso no, per questo motivo ho aggiunto l’opzione di build solamente nei giorni lavorativi.

Come? Ecco la modifica!

1
2
3
on:	
  schedule:
    - cron:  '0 4 * * 1-5'

Semplice vero?

ATTENZIONE: Ricordate di gestire al meglio il cron del build per evitare di consumare tutti i minuti offerti dal piano gratuito e sforare nei piani a pagamento.

Per scoprire lo stato dei vostri build nel corso del mese gli step sono i seguenti:

  • setting
  • Billing & plans
  • Usage this month
  • GitHub Actions
  • Private Repos: XXX of 2000 min included

Facile no? Personalmente la mia build dura circa 45 minuti. Ad eseguirla ogni giorno arriverei ad un totale di 1350 su 2000. Per evitare sprechi e consumi evito di farla eseguire nei fine settimana scendendo cosi a 990 minuti circa.

Vi ricordo che le GitHub Actions sui repository pubblici non vengono conteggiate nel limite dei 2000.