name: CI on: push: branches: [main] pull_request: branches: [main] schedule: - cron: "0 6 * * 1" jobs: build-and-scan: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build Docker image run: | docker build -t adguard-cidre:ci . 2>&1 | tee build.log if grep -q "Building wheel for" build.log; then echo "::warning::Une dépendance a compilé depuis les sources — vérifie la compatibilité Python/Alpine" fi - name: Smoke test run: | set +e timeout 10s docker run --rm adguard-cidre:ci python blocklist_scheduler.py code=$? set -e if [ "$code" -eq 124 ]; then echo "OK: le script tourne toujours après 10s (timeout normal)" elif [ "$code" -ne 0 ]; then echo "::error::Le script a crashé au démarrage (code $code)" exit 1 fi - name: Check deprecation warnings run: | docker run --rm adguard-cidre:ci python -W error::DeprecationWarning -c "import blocklist_scheduler" 2>&1 | tee deprecation.log || true if grep -qi "deprecat" deprecation.log; then echo "::warning::Avertissement de dépréciation détecté, voir logs" fi - name: Scan with Trivy (critical - blocking) run: | docker run --rm \ -e DOCKER_HOST=tcp://dockerhost:2375 \ --add-host=dockerhost:host-gateway \ aquasec/trivy:0.74.0 image --exit-code 1 --severity CRITICAL adguard-cidre:ci - name: Scan with Trivy (high - informative) run: | docker run --rm \ -e DOCKER_HOST=tcp://dockerhost:2375 \ --add-host=dockerhost:host-gateway \ aquasec/trivy:0.74.0 image --exit-code 0 --severity HIGH adguard-cidre:ci