Files
ci_prova/.gitea/workflows/test-hello.yml
T
manuel.mauro a21b2158d4
Hello CI / informazioni (push) Successful in 6s
Test Pipeline con Dipendenze / verifica-struttura (push) Successful in 5s
Test Pipeline con Dipendenze / verifica-sicurezza (push) Successful in 5s
ci: aggiungi pipeline con verifica struttura e sicurezza
2026-06-25 11:19:53 +02:00

64 lines
2.5 KiB
YAML

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."