Skip to content

Build, configuration & deploiement

Build / run / publish

bash
dotnet build                                            # build (commande du CI)
dotnet run --project src/Web                            # run local
cd src/Web && dotnet publish -c Release . -o __publish  # publish

src/Web/Web.csproj : net8.0, Microsoft.NET.Sdk.Web. Packages cles : Umbraco.Cms 13.9.2, uSync 13.2.7 (+ uSync.Exporter), Umbraco.Cms.Imaging.ImageSharp, Umbraco.Community.Contentment, Our.Umbraco.GMaps, GoogleAuthenticator, Spk.Common.Helpers, Microsoft.ICU.ICU4C.Runtime. Razor non compile au build/publish (fichiers copies pour le backoffice).

Configuration

FichierRoleSecrets
appsettings.jsonBase complete (reference de schema)non
appsettings.Development.jsonOverrides partages entre devsnon
appsettings.local.jsonOverrides par dev (git-ignore)oui

Cles importantes (appsettings.json) :

  • DeliveryApi : Enabled=true, PublicAccess=true, Media.PublicAccess=false, RichTextOutputAsJson=false.
  • ModelsBuilder : ModelsMode=SourceCodeAuto, ModelsNamespace=Web.umbraco.Models.
  • ConnectionStrings.umbracoDbDSN (vide en versionne, defini au deploiement ; provider Microsoft.Data.SqlClient).
  • uSync : ExportOnSave=Settings, ImportAtStartup=Settings, DictionaryHandler.CreateOnly=true.
  • CORS : AccmFrontendUrl, IcogneFrontendUrl, LinfoFrontendUrl.
  • PublishWebhook.Url + PublishWebhook.Secret, GoogleMaps.ApiKey.
  • Serilog : sink Console (async) dans appsettings.json -> logs sur stdout, visibles via docker logs (en plus des logs fichiers Umbraco dans umbraco/Logs, montes via docker-compose).

Base de donnees & medias

  • MSSQL sur la VM Azure vmsqla001 : umb_accm-content-headless_staging / _prod.
  • Pas de migrations EF : le schema est gere par l'installeur Umbraco + uSync.
  • Medias stockes en local sur la VM (Azure Columbia), montes via docker-compose (./media:/app/wwwroot/media, logs ./logs:/app/umbraco/Logs).

Docker (hosting/Dockerfile)

  • Build : mcr.microsoft.com/dotnet/sdk:8.0 -> dotnet restore + dotnet publish -c Release -o /app/publish. Build arg ENVIRONMENT selectionne le CSS backoffice (backoffice.${ENVIRONMENT}.css).
  • Runtime : mcr.microsoft.com/dotnet/aspnet:8.0, ENTRYPOINT ["dotnet", "Web.dll"].

CI/CD (GitLab)

.gitlab-ci.yml, stage build (Docker-in-Docker, docker:25). Image registry.internal.spektrum-suisse.ch/accm-content-headless.

  • staging : auto sur push, tags staging + short SHA.
  • master/prod : gate manuel (when: manual), tags prod + short SHA.
  • Deploiement docker-compose sur la VM : staging port 5005 (docker-compose.yml), prod port 5008 (docker-compose.production.yml).
  • Note : le depot a utilise CircleCI auparavant ; le pipeline actif est GitLab CI.

Branches

feature/* -> develop -> staging (QA) -> master (prod). develop et staging restent equivalents.

Tests

tests/Web/ (xUnit 2.9.2 + Moq). Actuellement seulement un DummyTest scaffold ; pas de stage de test dans le pipeline.

Contributors

No contributors

Changelog

No recent changes