64 lines
1.6 KiB
YAML
64 lines
1.6 KiB
YAML
# 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
|