Blocco B · La filiera automatizzata — Modulo 8 di 16

Git e Pipeline as Code

Obiettivi di oggi

La procedura diventa un file

stages: [lint, build]

lint-python:
  stage: lint
  image: python:3.12-slim        # ogni job in un container PULITO
  script:
    - pip install ruff==0.4.4
    - ruff check api/

build-api:
  stage: build
  image: docker:26
  services: ["docker:26-dind"]
  script:
    - docker build -t pratiche/api:ci api/

Chi esegue? Il runner

Le stesse idee, altrove

GitLab CIGitHub ActionsAzure DevOps
.gitlab-ci.yml.github/workflows/*.ymlazure-pipelines.yml
stage / jobjob (needs) / stepstage / job
runnerrunneragent

Impariamo su GitLab; i concetti si trasferiscono 1:1 — anche verso i fornitori che usano altro.

Laboratorio (2h)

  1. Progetto su GitLab (o GitLab d'aula), push del codice Pratiche
  2. Pipeline lint+build; rompila apposta, guardala bloccare, riparala
  3. Badge di stato nel README

Riepilogo e prossimo passo

← portale · frecce/click per navigare · F = schermo intero · Ctrl+P = PDF