perf(ci): ajouter cache et image Node 22 au runner recette

This commit is contained in:
Manus AI
2026-08-18 12:33:40 +00:00
parent d553cc4278
commit 35206fb14b
4 changed files with 21 additions and 7 deletions

View File

@@ -1,5 +1,8 @@
# Image locale du runner recette. Basée sur Node 20 déjà utilisée par le dashboard,
# elle évite un téléchargement externe et fournit le shell Bash attendu par Gitea Actions.
FROM node:20-alpine
# Image locale de CI : Node 22, Bash, Git et le pnpm exact du workspace Contacts.
# Les jobs n'ont donc plus à télécharger ou installer ces outils à chaque exécution.
FROM node:22-alpine
RUN apk add --no-cache bash git
RUN apk add --no-cache bash git \
&& corepack enable \
&& corepack prepare pnpm@10.4.1 --activate \
&& pnpm --version

View File

@@ -4,7 +4,9 @@ Le script `healthcheck-apps.sh` est exécuté par le timer systemd toutes les ci
Le dernier rapport est écrit dans `/var/lib/manus-apps-health/latest.txt`. Les anomalies sont aussi consignées dans le journal système avec le tag `manus-apps-health`.
Le runner de recette est installé par `install-gitea-act-runner.sh`. Il construit une image locale Node 20 avec Bash, puis s’enregistre auprès de Gitea avec un jeton éphémère. Les workflows s’exécutent ensuite dans cette image isolée sur le réseau Docker `web`.
Le runner de recette est installé par `install-gitea-act-runner.sh`. Il construit une image locale Node 22 avec Bash, Git et pnpm 10.4.1 préactivé, puis s’enregistre auprès de Gitea avec un jeton éphémère. Les workflows s’exécutent ensuite dans cette image isolée sur le réseau Docker `web`.
Le cache Gitea Actions est actif sur le port hôte `18088` et stocke ses archives sous `/opt/manus-deploy/gitea-runner/cache`. Les workflows doivent utiliser une clé dérivée de leur fichier de verrouillage, par exemple `pnpm-lock.yaml`, afin de ne jamais réutiliser des dépendances incompatibles.
Les pushes du dépôt `manus-dashboard` créent une demande atomique prise en charge par `manus-dashboard-self-deploy.path`. Le conteneur ne se redéploie donc jamais lui-même : le service systemd hôte effectue le build et le démarrage du remplacement.

View File

@@ -6,5 +6,13 @@ runner:
envs:
DOCKER_HOST: unix:///var/run/docker.sock
# Le cache intégré est servi par le runner hôte et accessible par les jobs
# depuis le réseau Docker web. Les clés restent définies par chaque workflow.
cache:
enabled: true
dir: /opt/manus-deploy/gitea-runner/cache
host: 172.18.0.1
port: 18088
container:
network: web

View File

@@ -8,11 +8,12 @@ readonly RUNNER_DIR="/opt/manus-deploy/gitea-runner"
readonly GITEA_CONTAINER="gitea"
readonly GITEA_URL="https://git.recette.santinova-soft.org"
readonly RUNNER_NAME="recette-docker-runner"
readonly RUNNER_IMAGE="gitea-runner-node:20"
readonly RUNNER_LABELS="ubuntu-latest:docker://${RUNNER_IMAGE}"
readonly RUNNER_IMAGE="gitea-runner-node:22"
readonly RUNNER_LABELS="ci-node22:docker://${RUNNER_IMAGE}"
readonly LABEL_FILE="${RUNNER_DIR}/labels"
install -d -m 0750 "${RUNNER_DIR}"
install -d -m 0750 "${RUNNER_DIR}/cache"
install -m 0640 "${SCRIPT_DIR}/gitea-act-runner-config.yaml" "${RUNNER_DIR}/config.yaml"
install -D -m 0644 "${SCRIPT_DIR}/gitea-act-runner.service" /etc/systemd/system/gitea-act-runner.service
docker build --tag "${RUNNER_IMAGE}" --file "${SCRIPT_DIR}/Dockerfile.gitea-runner" "${APP_DIR}"