From 78d907144b527f2b25386052fa5b05245adcd915 Mon Sep 17 00:00:00 2001 From: Andrea Comisso Date: Thu, 25 Jun 2026 11:19:17 +0200 Subject: [PATCH] ci: aggiungi pipeline con verifica struttura e sicurezza --- .gitea/workflows/test-hello.yml | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .gitea/workflows/test-hello.yml diff --git a/.gitea/workflows/test-hello.yml b/.gitea/workflows/test-hello.yml new file mode 100644 index 0000000..005e76b --- /dev/null +++ b/.gitea/workflows/test-hello.yml @@ -0,0 +1,63 @@ +name: Test Pipeline con Dipendenze + +on: + push: + branches: [main, master] + +jobs: + # Job 1: verifica la struttura del progetto + verifica-struttura: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Verifica file essenziali Rails + run: | + echo "Verifica presenza file Rails/Laravel..." + # Rails + [ -f "Gemfile" ] && echo "✓ Gemfile trovato" || echo "✗ Gemfile mancante" + [ -f "Gemfile.lock" ] && echo "✓ Gemfile.lock trovato" || echo "✗ Gemfile.lock mancante (PROBLEMA CI/CD)" + # Laravel + [ -f "composer.json" ] && echo "✓ composer.json trovato" || echo "✗ composer.json mancante" + [ -f "composer.lock" ] && echo "✓ composer.lock trovato" || echo "✗ composer.lock mancante (PROBLEMA CI/CD)" + # Docker + [ -f "Dockerfile" ] && echo "✓ Dockerfile trovato" || echo "✗ Dockerfile mancante" + [ -f ".dockerignore" ] && echo "✓ .dockerignore trovato" || echo "! .dockerignore assente (consigliato)" + echo "Verifica completata." + + # Job 2: verifica sicurezza base — parte DOPO verifica-struttura + verifica-sicurezza: + runs-on: ubuntu-latest + needs: verifica-struttura # DIPENDENZA: parte solo se verifica-struttura è verde + + steps: + - uses: actions/checkout@v4 + + - name: Cerca pattern di sicurezza rischiosi + run: | + echo "=== Scan pattern pericolosi ===" + echo "" + + # Cerca hardcoded secrets comuni (ATTENZIONE: è una verifica semplificata) + echo "Controllo .env committati..." + if find . -name ".env" -not -path "./.git/*" | grep -q .; then + echo "ATTENZIONE: trovati file .env nel repository!" + find . -name ".env" -not -path "./.git/*" + else + echo "OK: nessun file .env nel repository" + fi + + echo "" + echo "Controllo pattern password in chiaro..." + MATCHES=$(grep -r "password\s*=\s*['\"][^'\"]\+['\"]" \ + --include="*.rb" --include="*.php" \ + --exclude-dir=".git" . 2>/dev/null | grep -v "test\|spec\|example\|placeholder\|CHANGE" || true) + if [ -n "$MATCHES" ]; then + echo "ATTENZIONE: possibili password hardcoded trovate (verificare manualmente):" + echo "$MATCHES" | head -5 + else + echo "OK: nessun pattern password pericoloso rilevato" + fi + + echo "" + echo "Scan completato."