commit 35193a1411ab41b5baab1a6a2d2f88ce0c4d406a Author: admin Date: Thu Oct 22 13:36:21 2026 +0200 Page d'essai et pipeline de déploiement diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..c1852a3 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,17 @@ +# Construit l'image et déploie la page sur la machine elle-même. +# Le dépôt doit être « de confiance » (volumes) dans Woodpecker : le +# pas monte le socket Docker et le dossier de la pile. +when: + - event: [push, manual] + branch: main + +steps: + - name: construire-et-deployer + image: docker:29-cli + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /docker/stacks/webapp-essai:/docker/stacks/webapp-essai + commands: + - docker build --build-arg COMMIT=${CI_COMMIT_SHA:0:8} --build-arg DATE="$(date '+%d.%m.%Y %H:%M')" -t essai:${CI_COMMIT_SHA:0:8} -t essai:latest . + - cp deploy/compose.yaml /docker/stacks/webapp-essai/compose.yaml + - docker compose -f /docker/stacks/webapp-essai/compose.yaml -p webapp-essai up -d --force-recreate diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b1dc980 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:1.29-alpine +ARG COMMIT=inconnu +ARG DATE=inconnue +COPY index.html /usr/share/nginx/html/index.html +RUN sed -i "s/__COMMIT__/${COMMIT}/; s/__DATE__/${DATE}/" /usr/share/nginx/html/index.html diff --git a/README.md b/README.md new file mode 100644 index 0000000..cecf139 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# essai + +Projet de validation de la chaîne de `gsoftware` : un dépôt sur sa Gitea, un pipeline sur son Woodpecker, une page servie par son Traefik sur [essai.gsoftware.ch](https://essai.gsoftware.ch/). + +À chaque poussée sur `main`, le pipeline (`.woodpecker.yml`) : + +1. construit l'image `essai` à partir du `Dockerfile`, en y inscrivant le commit ; +2. dépose `deploy/compose.yaml` dans `/docker/stacks/webapp-essai/` sur la machine ; +3. relance la pile. + +La page affiche le commit déployé : si elle change après une poussée, toute la chaîne fonctionne. + +Le pipeline monte le socket Docker de la machine : le dépôt doit être marqué « de confiance » (volumes) dans Woodpecker. + +Créé le 22.10.2026, à la construction de `gsoftware`. Il peut servir de modèle pour un premier projet, ou être supprimé. diff --git a/deploy/compose.yaml b/deploy/compose.yaml new file mode 100644 index 0000000..a8493c7 --- /dev/null +++ b/deploy/compose.yaml @@ -0,0 +1,29 @@ +# Pile de la page d'essai, déposée par le pipeline dans +# /docker/stacks/webapp-essai/ puis relancée. +services: + webapp-essai: + image: essai:latest + pull_policy: never + restart: unless-stopped + expose: + - "80" + labels: + - traefik.enable=true + - traefik.http.routers.webapp-essai-http.rule=Host(`essai.gsoftware.ch`) + - traefik.http.routers.webapp-essai-http.entrypoints=web + - traefik.http.routers.webapp-essai-http.middlewares=redirect-to-https@file + - traefik.http.routers.webapp-essai-https.rule=Host(`essai.gsoftware.ch`) + - traefik.http.routers.webapp-essai-https.entrypoints=websecure + - traefik.http.routers.webapp-essai-https.middlewares=security-headers@file + - traefik.http.routers.webapp-essai-https.tls.certresolver=le-http + - traefik.http.services.webapp-essai.loadbalancer.server.port=80 + - homepage.group=Projets + - homepage.name=Essai + - homepage.icon=mdi-check-circle-outline + - homepage.href=https://essai.gsoftware.ch/ + - homepage.description=Page de validation de la chaîne CI/CD + networks: + - frontend +networks: + frontend: + external: true diff --git a/index.html b/index.html new file mode 100644 index 0000000..c0f39fa --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + gsoftware — essai + + + +

gsoftware

+

La chaîne fonctionne.

+

Cette page a été construite par Woodpecker à partir du dépôt admin/essai de la Gitea de gsoftware, puis déployée sur la machine et servie par son Traefik.

+

Commit déployé : __COMMIT__
Construite le : __DATE__

+ +