Introduction đ
La semaine derniĂšre, jâai remarquĂ© que les dĂ©ploiements sur Sitecore XM-Cloud Ă©chouaient sur lâun de mes projets. Dans cet article de blog, je passerai en revue les Ă©tapes de dĂ©pannage que jâai suivies et la nature du problĂšme. Pour fournir un peu plus de contexte sur la configuration DevOps pour ce projet particulier, un Azure DevOps le pipeline exĂ©cute un script. Ce script utilise le CLI Sitecore et le plugin Sitecore XM Cloud dĂ©ploiement cloud commande Ă dĂ©ployer sur XM Cloud. Le dernier dĂ©ploiement rĂ©ussi remonte Ă quelques jours seulement et il nây a pas eu beaucoup de changements de code depuis. Au dĂ©part, jâĂ©tais assez perplexe mais bon, que faire Ă part commencer par le hautâŠ
DĂ©pannage đ·ââïž
- Quiconque a travaillĂ© avec des services SaaS basĂ©s sur le cloud sait que les pannes passagĂšres existent, et XM Cloud ne fait pas exception. La premiĂšre chose que jâai essayĂ©e a Ă©tĂ© de simplement rĂ©exĂ©cuter lâĂ©tape dĂ©faillante de notre pipeline pour voir sâil ne sâagissait que dâun « simple problĂšme ». HĂ©las, plusieurs tentatives de dĂ©ploiement ultĂ©rieures ont Ă©chouĂ© avec la mĂȘme erreur. Dâaccord, trĂšs bien, ce nâĂ©tait pas un problĂšme passager đ.
- En examinant les journaux dans lâinterface XM Cloud Deploy, lâĂ©tape de construction Ă©chouait systĂ©matiquement. En explorant les journaux, plusieurs erreurs de compilation se sont produites faisant rĂ©fĂ©rence Ă des assemblys Sitecore manquants. Par exemple: erreur CS0246 : le type ou le nom de lâespace de noms « Item » est introuvable (il vous manque une directive using ou une rĂ©fĂ©rence dâassembly ?). Cela suggĂ©rait un problĂšme avec la restauration NuGet ou avec la compilation de maniĂšre plus gĂ©nĂ©rale.
- RĂ©exĂ©cution des Ă©tapes ayant Ă©chouĂ© dans un pipeline Azure DevOps utilise le mĂȘme commit qui a Ă©tĂ© associĂ© Ă la premiĂšre exĂ©cutionâle dernier code de la branche nâest pas extrait Ă chaque tentative de rĂ©exĂ©cution. Cela signifiait que le code utilisĂ© pour le dernier dĂ©ploiement rĂ©ussi câĂ©tait le mĂȘme code utilisĂ© pour les tentatives ultĂ©rieures. En dâautres termes, ceci probablement nâĂ©tait pas un problĂšme de code (derniers mots cĂ©lĂšbres, non đ ?).
- Juste pour ĂȘtre sĂ»r, jâai comparĂ© plusieurs commits rĂ©cents sur notre branche de dĂ©veloppement et, oui, il nây a eu aucun changement qui aurait pu interrompre la compilation depuis le dernier dĂ©ploiement rĂ©ussi.
- Pour continuer les vĂ©rifications dâintĂ©gritĂ©, jâai extrait le commit spĂ©cifique localement et vĂ©rifiĂ© que je pouvais :
- Restaurer les packages NuGet, via lâinterface utilisateur et la console
- Construire/reconstruire la solution Visual Studio
- AprĂšs avoir revisitĂ© et comparĂ© les journaux XM Cloud Deploy, jâai remarquĂ© que la version de
msbuildavait changĂ© entre le dernier dĂ©ploiement rĂ©ussi et les dĂ©ploiements Ă©chouĂ©s les plus rĂ©cents. Jâai tĂ©lĂ©chargĂ© la mĂȘme version, plus rĂ©cente, demsbuildet vĂ©rifiĂ©, une fois de plus, que je pouvais restaurer les packages NuGet et crĂ©er la solution. - Enfin, jâai confirmĂ© que le build de validation configurĂ© pour la branche de dĂ©veloppement (via politiques de succursale dans Azure DevOps) fonctionnait comme prĂ©vu et crĂ©ait avec succĂšs la solution Ă chaque fois quâune nouvelle demande dâextraction Ă©tait créée.
Ă ce stade, pendant que je continuais Ă analyser les journaux de dĂ©ploiement, jâai ouvert un ticket dâassistance Sitecore pour leur donner mon avis đââïž. Jâai fourni une assistance avec les derniers journaux de build fonctionnels connus, les derniers journaux de build ayant Ă©chouĂ© et la liste de mes Ă©tapes de dĂ©pannage jusquâĂ ce point.
La solution đ©č
AprĂšs avoir reçu une rĂ©ponse du support Sitecore, il sâest avĂ©rĂ© que Sitecore avait rĂ©cemment modifiĂ© la façon dont le buildTargets propriĂ©tĂ© dans le xmcloud.build.json Le fichier a Ă©tĂ© consommĂ© et utilisĂ© dans le cadre des dĂ©ploiements. Pour citer lâingĂ©nieur du support :
Il y a eu quelques changements dans le processus de construction, et maintenant les cibles de construction sont chargées à partir de la liste « buildTargets ». Les versions de travail précédentes utilisaient directement le fichier « .sln ».
Il semble que cela ait empĂȘchĂ© la construction de fonctionner correctement pour certains projets.
Le correctif suggĂ©rĂ© consistait Ă cibler spĂ©cifiquement le fichier de solution Visual Studio pour garantir que la restauration et la compilation du package NuGet de dĂ©ploiement XM Cloud fonctionnaient comme prĂ©vu. Mon interprĂ©tation du changement Ă©tait « XM Cloud Deploy Ă©tait utilisĂ© pour pas se soucier/respecter buildTargets⊠mais maintenant câest le cas.
AprÚs avoir créé une pull request pour modifier le buildTargets propriété à partir de ceci (ciblant le projet spécifique de niveau supérieur) :
{
...
"buildTargets": [
"./src/platform/Project/Foo.Project.Platform/Platform.csproj"
]
...
}
âŠĂ ceci (ciblant la solution) :
{
...
"buildTargets": [
"./Foo.sln"
]
...
}
âŠle prochain dĂ©ploiement sur XM Cloud (via CI/CD) a fonctionnĂ© comme prĂ©vu. â đ
AprĂšs avoir demandĂ© Ă lâingĂ©nieur du support Sitecore oĂč ce changement avait Ă©tĂ© documentĂ©, ils lâont gracieusement signalĂ© en interne et publiĂ© un nouvel Ă©vĂ©nement sur le site. Page dâĂ©tat du sitecore pour reconnaĂźtre le changement/le problĂšme : Le dĂ©ploiement ne parvient pas Ă se construire.
Si vous remarquez que vos dĂ©ploiements XM Cloud Ă©chouent lors de lâĂ©tape de gĂ©nĂ©ration lors de la compilation de votre solution Visual Studio, assurez-vous de cibler le fichier de solution (.sln) et non un fichier de projet spĂ©cifique (.csproj) dans le buildTargets propriĂ©tĂ© dans le xmcloud.build.json dossier⊠parce que câest important maintenant, apparemment đ.
Merci pour la lecture! đ
Source link

