Skip to content

Build, base de donnees, uSync, deploiement

Cake (build.cake)

Cible par defaut : Review-App (verifie l'environnement, restaure les libs, copie les fichiers, lance le site sur http://localhost:10909).

Cibles principales :

CibleRole
Review-AppDefaut : Check-Local-Environment + Restore-Javascript-Libraries + Postbuild-Files + lancement .NET
Check-Local-EnvironmentVerifie la presence de CI_SQL_CONNECTION_STRING (sinon exception)
Restore-DatabaseOrchestre : Create-Virgin-Umbraco-Database + Recreate-User-Database + Execute-ScratchSQL-Database
Create-Virgin-Umbraco-DatabaseDrop/recreate la base, applique le schema db/umbraco_base-13.3.0.sql
Recreate-User-DatabaseCree le login/user applicatif umbuser-pully + roles
Execute-ScratchSQL-DatabaseExecute les ~387 scripts SQL ordonnes de data/01.Scratch/ (saute si useUsync="true")
Postbuild / Postbuild-FilesCompile SCSS (Vite) + copie vues, templates email, vues Forms, JS, mirror Umbraco vers l'hote
Compile-TypeScriptnpx tsc dans src/Nanoxi/TypeScript/
Build-Frontend-Vitenpm run build (bundles CSS/JS)
Restore-Javascript-LibrariesLibMan (bootstrap, jquery, popper, splide, micromodal, jquery-validate) vers wwwroot/lib/
Watch / Watch-Dotnet / Watch-ModifiedFilesdotnet watch + recopie auto des SCSS/CSHTML/JS modifies
Publish-Dotnet-Releasedotnet publish -c release -o ../../tmp/output
Build-Docker-ImageTag ncr.nanoxi.com/starterkitv4-cavepully:{version} (version lue dans la DLL App.Core)
ReleasePublish + build/push image Docker
ReplaceSecretKeysInjecte les variables CI/CD GitLab dans les appsettings (release)

Variables de build (defauts) : target=Review-App, configuration=Release, environment=Development, useUsync=false, umbracoVersion=13.3.0, skins [default, cave, forets, piscines, commune].

Base de donnees

  • Connexion via CI_SQL_CONNECTION_STRING (definie par cake/Set-EnvironmentVariable.ps1, format Server=127.0.0.1;User Id=sa;Password=..., Cake ajoute Encrypt=False).
  • Base : umb-pully-prd-db, user applicatif umbuser-pully.
  • Restauration manuelle obligatoire : Cake ne restaure plus automatiquement. Restaurer un backup staging/prod AVANT le dev local, puis lancer dotnet cake pour les permissions et les scripts.
  • data/01.Scratch/ (structure de base) : 000.Language, 010.BaseStoredProcedure, ElementType/DataType, 050.NanoxiTable, 070.Root, 075.Compositions, 076.Template, 091.Settings, 100.Autorisation, 210.I18n, 215.Custom, 999.Users.

uSync

  • uSync 13.1.3 + uSync.Complete. Config serialisee sous src/Umbraco/uSync/v9/ (ContentTypes, Content, Domains, Dictionary, Languages, ...).
  • Workflow en cours d'introduction : par defaut useUsync=false (on utilise les scripts SQL). Avec useUsync=true, la cible saute les scripts et importe les fichiers uSync via l'API InstallApi/ImportUsyncFiles.
  • Probleme connu : certains alias reserves Umbraco entrent en conflit avec uSync ; contournes temporairement par des scripts SQL dans data/01.Scratch/. A nettoyer quand le workflow uSync sera mature.

Docker

dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2019
ENV TZ=Europe/Zurich
WORKDIR /App
COPY tmp/output/ .
COPY tmp/tessdata/fra.traineddata ./tessdata/   # OCR PDF francais
ENTRYPOINT ["dotnet", "Umbraco.dll"]

Metadonnees Git injectees au build (GIT_COMMIT_COUNT, GIT_COMMIT_SHA) et affichees sur le dashboard backoffice.

CI/CD (GitLab)

.gitlab-ci.yml, stages build -> deploy, sur branches staging et main uniquement.

  • build (runner Windows) : Node 22, dotnet restore, npm ci + npm run build, dotnet cake --target=Postbuild-Files, dotnet publish, ecriture version/pipeline/git-info. Artefact publish/ (2 semaines).
  • deploy (modele pull, runner installe sur l'IIS) : pose App_Offline.htm, robocopy vers E:\pully\website en excluant media/, logs/, umbraco/Logs|Data et les appsettings.*/web.config, retire App_Offline.htm.
    • deploy:staging (tag windows-staging-iis, branche staging) -> http://commune-pully.spektrum.media
    • deploy:production (tag windows-prod-iis, branche main, manuel) -> https://www.pully.ch

Gotchas dev

  • Prefixe www. obligatoire pour les URL internes.
  • Cache backoffice corrompu : supprimer src/Umbraco/umbraco/Cache/content.
  • Ne pas editer les fichiers generes (Views/, wwwroot/css|js).
  • Secrets injectes au CI (ReplaceSecretKeys), jamais committes.

Contributors

No contributors

Changelog

No recent changes