perf(ci): ajouter cache et image Node 22 au runner recette
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
# Image locale du runner recette. Basée sur Node 20 déjà utilisée par le dashboard,
|
# Image locale de CI : Node 22, Bash, Git et le pnpm exact du workspace Contacts.
|
||||||
# elle évite un téléchargement externe et fournit le shell Bash attendu par Gitea Actions.
|
# Les jobs n'ont donc plus à télécharger ou installer ces outils à chaque exécution.
|
||||||
FROM node:20-alpine
|
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
|
||||||
|
|||||||
@@ -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 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.
|
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.
|
||||||
|
|
||||||
|
|||||||
@@ -6,5 +6,13 @@ runner:
|
|||||||
envs:
|
envs:
|
||||||
DOCKER_HOST: unix:///var/run/docker.sock
|
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:
|
container:
|
||||||
network: web
|
network: web
|
||||||
|
|||||||
@@ -8,11 +8,12 @@ readonly RUNNER_DIR="/opt/manus-deploy/gitea-runner"
|
|||||||
readonly GITEA_CONTAINER="gitea"
|
readonly GITEA_CONTAINER="gitea"
|
||||||
readonly GITEA_URL="https://git.recette.santinova-soft.org"
|
readonly GITEA_URL="https://git.recette.santinova-soft.org"
|
||||||
readonly RUNNER_NAME="recette-docker-runner"
|
readonly RUNNER_NAME="recette-docker-runner"
|
||||||
readonly RUNNER_IMAGE="gitea-runner-node:20"
|
readonly RUNNER_IMAGE="gitea-runner-node:22"
|
||||||
readonly RUNNER_LABELS="ubuntu-latest:docker://${RUNNER_IMAGE}"
|
readonly RUNNER_LABELS="ci-node22:docker://${RUNNER_IMAGE}"
|
||||||
readonly LABEL_FILE="${RUNNER_DIR}/labels"
|
readonly LABEL_FILE="${RUNNER_DIR}/labels"
|
||||||
|
|
||||||
install -d -m 0750 "${RUNNER_DIR}"
|
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 -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
|
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}"
|
docker build --tag "${RUNNER_IMAGE}" --file "${SCRIPT_DIR}/Dockerfile.gitea-runner" "${APP_DIR}"
|
||||||
|
|||||||
Reference in New Issue
Block a user