64 lines
2.5 KiB
YAML
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."
|