57 lines
1.9 KiB
YAML
57 lines
1.9 KiB
YAML
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 |