Page d'essai et pipeline de déploiement
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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é.
|
||||
@@ -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
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>gsoftware — essai</title>
|
||||
<style>
|
||||
body { font-family: system-ui, sans-serif; max-width: 40rem; margin: 4rem auto; padding: 0 1rem; color: #1d2b36; }
|
||||
h1 { font-size: 1.6rem; }
|
||||
code { background: #eef2f5; padding: .1rem .3rem; border-radius: .2rem; }
|
||||
.ok { color: #1b7f3b; font-weight: 600; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>gsoftware</h1>
|
||||
<p class="ok">La chaîne fonctionne.</p>
|
||||
<p>Cette page a été construite par Woodpecker à partir du dépôt <code>admin/essai</code> de la Gitea de gsoftware, puis déployée sur la machine et servie par son Traefik.</p>
|
||||
<p>Commit déployé : <code>__COMMIT__</code><br>Construite le : <code>__DATE__</code></p>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user