name: Test Pipeline con Dipendenze on: push: branches: [main, master] jobs: verifica-struttura: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Verifica file essenziali Rails run: | echo "Verifica presenza file Rails/Laravel..." [ -f "Gemfile" ] && echo "✓ Gemfile trovato" || echo "✗ Gemfile mancante" [ -f "Gemfile.lock" ] && echo "✓ Gemfile.lock trovato" || echo "✗ Gemfile.lock mancante (PROBLEMA CI/CD)" [ -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)" [ -f "Dockerfile" ] && echo "✓ Dockerfile trovato" || echo "✗ Dockerfile mancante" [ -f ".dockerignore" ] && echo "✓ .dockerignore trovato" || echo "! .dockerignore assente (consigliato)" echo "Verifica completata." verifica-sicurezza: runs-on: ubuntu-latest needs: verifica-struttura steps: - uses: actions/checkout@v4 - name: Cerca pattern di sicurezza rischiosi run: | echo "=== Scan pattern pericolosi ===" echo "" 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..." if grep -r "password\s*=\s*['\"][^'\"]\+['\"]" \ --include="*.rb" --include="*.php" \ --exclude-dir=".git" . 2>/dev/null | grep -v "test\|spec\|example\|placeholder\|CHANGE" | head -5; then echo "ATTENZIONE: possibili password hardcoded trovate (verificare manualmente)" else echo "OK: nessun pattern password pericoloso rilevato" fi echo "" echo "Scan completato."