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 :
| Cible | Role |
|---|---|
| Review-App | Defaut : Check-Local-Environment + Restore-Javascript-Libraries + Postbuild-Files + lancement .NET |
| Check-Local-Environment | Verifie la presence de CI_SQL_CONNECTION_STRING (sinon exception) |
| Restore-Database | Orchestre : Create-Virgin-Umbraco-Database + Recreate-User-Database + Execute-ScratchSQL-Database |
| Create-Virgin-Umbraco-Database | Drop/recreate la base, applique le schema db/umbraco_base-13.3.0.sql |
| Recreate-User-Database | Cree le login/user applicatif umbuser-pully + roles |
| Execute-ScratchSQL-Database | Execute les ~387 scripts SQL ordonnes de data/01.Scratch/ (saute si useUsync="true") |
| Postbuild / Postbuild-Files | Compile SCSS (Vite) + copie vues, templates email, vues Forms, JS, mirror Umbraco vers l'hote |
| Compile-TypeScript | npx tsc dans src/Nanoxi/TypeScript/ |
| Build-Frontend-Vite | npm run build (bundles CSS/JS) |
| Restore-Javascript-Libraries | LibMan (bootstrap, jquery, popper, splide, micromodal, jquery-validate) vers wwwroot/lib/ |
| Watch / Watch-Dotnet / Watch-ModifiedFiles | dotnet watch + recopie auto des SCSS/CSHTML/JS modifies |
| Publish-Dotnet-Release | dotnet publish -c release -o ../../tmp/output |
| Build-Docker-Image | Tag ncr.nanoxi.com/starterkitv4-cavepully:{version} (version lue dans la DLL App.Core) |
| Release | Publish + build/push image Docker |
| ReplaceSecretKeys | Injecte 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 parcake/Set-EnvironmentVariable.ps1, formatServer=127.0.0.1;User Id=sa;Password=..., Cake ajouteEncrypt=False). - Base :
umb-pully-prd-db, user applicatifumbuser-pully. - Restauration manuelle obligatoire : Cake ne restaure plus automatiquement. Restaurer un backup staging/prod AVANT le dev local, puis lancer
dotnet cakepour 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 soussrc/Umbraco/uSync/v9/(ContentTypes, Content, Domains, Dictionary, Languages, ...).- Workflow en cours d'introduction : par defaut
useUsync=false(on utilise les scripts SQL). AvecuseUsync=true, la cible saute les scripts et importe les fichiers uSync via l'APIInstallApi/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. Artefactpublish/(2 semaines). - deploy (modele pull, runner installe sur l'IIS) : pose
App_Offline.htm,robocopyversE:\pully\websiteen excluantmedia/,logs/,umbraco/Logs|Dataet lesappsettings.*/web.config, retireApp_Offline.htm.deploy:staging(tagwindows-staging-iis, branche staging) ->http://commune-pully.spektrum.mediadeploy:production(tagwindows-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

