Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Usare Python e Github Actions per automatizzare il tuo blog

Usare Python e Github Actions per automatizzare il tuo blog

GitHub Actions è il potente strumento introdotto da GitHub per automatizzare le operazioni che riguardano una repository GitHub. Ogni volta che un evento viene generato dalla nostra repository (una commit, un issue, …), GitHub Actions fa partire in automatico una sequenza di operazioni definite dall’utente. Queste operazioni (dette “Actions”) possono essere condivise dalla community o sviluppate personalmente, anche in Python! In questo talk voglio mostrare come costruire la propria GitHub Action in Python per condividere automaticamente i post di un blog su GitHub Pages su altre piattaforme, come Medium.

Andrea Grillo

June 07, 2022
Tweet

Other Decks in Programming

Transcript

  1. PYTHON E GITHUB ACTIONS PER AUTOMATIZZARE IL TUO BLOG Andrea

    Grillo @ PyCon Italia 2022
  2. ANDREA GRILLO @andregri andrea.grillo96@gmail.com DevOps Cloud https://github.com/andregri Python

  3. Il problema Post Hosted Github pages Web hosts Github repository

  4. Casi reali Disaster recovery Push vs Pull Automatico

  5. TRE POSSIBILI SOLUZIONI

  6. SOLUZIONE #1 Web scraping della pagina web

  7. None
  8. Contenuti STATICI, complesso per contenuti DINAMICI TARGET: Github Pages Non

    riutilizzabile Crontab “At 00:00 on Sunday”
  9. SOLUZIONE #2 Web scraping della pagina web Scraping della repository

    tramite API di GitHub
  10. None
  11. None
  12. TARGET: Repository Riutizzabile Crontab

  13. SOLUZIONE #3 Web scraping della pagina web Scraping della repository

    tramite API di GitHub Utilizzare lo script python in una Github Action
  14. None
  15. COS’È GITHUB ACTIONS?

  16. None
  17. Step vs Action ▪ STEP – Comando shell – pip

    install –r requirements.txt § ACTION – ~ Funzione – Input – Body: steps – Output
  18. COME USARE PYTHON IN GITHUB ACTIONS?

  19. Direttamente nel workflow Container Action Composite Action

  20. OPZIONE #1 Direttamente in un workflow § .github/workflows/ § Eventi

    § OS del runner § Lista di steps
  21. Semplice Ogni step può contenere molte istruzioni da eseguire Non

    riutilizzabile in altri workflow
  22. OPZIONE #2 Creare un Composite Action ▪ Dentro la repository:

    – action.yml – main.py – requirements.txt ▪ Action: – Metadati – Inputs – steps
  23. INPUT in una Composite Action Step della composite Action che

    esegue lo script Python:
  24. Usare l’action in un WORKFLOW

  25. OPZIONE #3 Creare un Container Action Dentro la repository: ▪

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

    action.yml ▪ Files python ▪ Requirements ▪ Dockerfile
  27. Ricevere gli INPUT dell’Action From the workflow… …to python INPUT_[VARIABLE

    NAME]
  28. Vantaggi e Svataggi di un Action Meno duplicazione di codice

    Il workflow diventa più leggibile Non si possono utilizzare i segreti della repository
  29. TEST E RILASCIO

  30. 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
  31. Usare un action del Marketplace workflow.yaml

  32. CONCLUSIONI Cos’è GitHub Actions Rilascio sul Marketplace Test in locale

    con act Sviluppare un action con Python andrea.grillo96@gmail.com