Slide 1

Slide 1 text

PYTHON E GITHUB ACTIONS PER AUTOMATIZZARE IL TUO BLOG Andrea Grillo @ PyCon Italia 2022

Slide 2

Slide 2 text

ANDREA GRILLO @andregri [email protected] DevOps Cloud https://github.com/andregri Python

Slide 3

Slide 3 text

Il problema Post Hosted Github pages Web hosts Github repository

Slide 4

Slide 4 text

Casi reali Disaster recovery Push vs Pull Automatico

Slide 5

Slide 5 text

TRE POSSIBILI SOLUZIONI

Slide 6

Slide 6 text

SOLUZIONE #1 Web scraping della pagina web

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Contenuti STATICI, complesso per contenuti DINAMICI TARGET: Github Pages Non riutilizzabile Crontab “At 00:00 on Sunday”

Slide 9

Slide 9 text

SOLUZIONE #2 Web scraping della pagina web Scraping della repository tramite API di GitHub

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

TARGET: Repository Riutizzabile Crontab

Slide 13

Slide 13 text

SOLUZIONE #3 Web scraping della pagina web Scraping della repository tramite API di GitHub Utilizzare lo script python in una Github Action

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

COS’È GITHUB ACTIONS?

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Step vs Action ■ STEP – Comando shell – pip install –r requirements.txt § ACTION – ~ Funzione – Input – Body: steps – Output

Slide 18

Slide 18 text

COME USARE PYTHON IN GITHUB ACTIONS?

Slide 19

Slide 19 text

Direttamente nel workflow Container Action Composite Action

Slide 20

Slide 20 text

OPZIONE #1 Direttamente in un workflow § .github/workflows/ § Eventi § OS del runner § Lista di steps

Slide 21

Slide 21 text

Semplice Ogni step può contenere molte istruzioni da eseguire Non riutilizzabile in altri workflow

Slide 22

Slide 22 text

OPZIONE #2 Creare un Composite Action ■ Dentro la repository: – action.yml – main.py – requirements.txt ■ Action: – Metadati – Inputs – steps

Slide 23

Slide 23 text

INPUT in una Composite Action Step della composite Action che esegue lo script Python:

Slide 24

Slide 24 text

Usare l’action in un WORKFLOW

Slide 25

Slide 25 text

OPZIONE #3 Creare un Container Action Dentro la repository: ■ action.yml ■ Files python ■ Requirements ■ Dockerfile

Slide 26

Slide 26 text

OPZIONE #3 Creare un Container Action Dentro la repository: ■ action.yml ■ Files python ■ Requirements ■ Dockerfile

Slide 27

Slide 27 text

Ricevere gli INPUT dell’Action From the workflow… …to python INPUT_[VARIABLE NAME]

Slide 28

Slide 28 text

Vantaggi e Svataggi di un Action Meno duplicazione di codice Il workflow diventa più leggibile Non si possono utilizzare i segreti della repository

Slide 29

Slide 29 text

TEST E RILASCIO

Slide 30

Slide 30 text

Test e Rilascio TEST ■ nektos/act ■ Docker ■ steps eseguiti nel container ■ act -j my_job --secret-file .secret RILASCIO ■ Marketplace ■ autore/repository@id ■ commit, branch, tag

Slide 31

Slide 31 text

Usare un action del Marketplace workflow.yaml

Slide 32

Slide 32 text

CONCLUSIONI Cos’è GitHub Actions Rilascio sul Marketplace Test in locale con act Sviluppare un action con Python [email protected]