# Template — vérification isolée d'une stack Docker Compose. # À copier tel quel dans chaque dépôt, avec .gitea/scripts/ ; aucune variable à configurer. # Remplace ci-develop.yml et ci-main.yml : les supprimer du dépôt. name: Compose CI on: push: branches: - develop - main tags: - "v[0-9]+.[0-9]+.[0-9]+" pull_request: branches: - main workflow_dispatch: env: CI_SCRIPT: .gitea/scripts/compose-ci.sh HELPER_IMAGE: python:3.13-alpine3.22 SHELLCHECK_IMAGE: koalaman/shellcheck:v0.10.0 jobs: lint-ci-scripts: runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@v4 - name: ShellCheck du script de CI run: docker run --rm -i --network none "$SHELLCHECK_IMAGE" - < "$CI_SCRIPT" - name: Syntaxe du script de réécriture run: >- docker run --rm -i --network none "$HELPER_IMAGE" python3 -c "import ast, sys; ast.parse(sys.stdin.read())" < .gitea/scripts/compose-ci-rewrite.py compose-verify: needs: lint-ci-scripts runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - name: Préparer une configuration isolée run: bash "$CI_SCRIPT" prepare - name: Démarrer la stack de CI run: bash "$CI_SCRIPT" up - name: Vérifier l'état des conteneurs run: bash "$CI_SCRIPT" verify - name: Journaux (en cas d'échec) if: failure() run: bash "$CI_SCRIPT" logs - name: Nettoyer la stack de CI if: always() run: bash "$CI_SCRIPT" cleanup