J'utilise actuellement gitlab.com (pas d'installation locale) avec leur multi-runner pour l'intégration CI. Cela fonctionne très bien sur l'un de mes projets mais échoue pour un autre.
J'utilise 2012R2 pour mon hôte avec la version 14.0.23107.0 de MSBuild. Je sais que l'erreur ci-dessous montre 403 qui est un message d'accès refusé. Mon problème est de trouver le paramètre d'autorisation à modifier.
Message d'erreur:
Exécution avec gitlab-ci-multi-runner 1.5.3 (fb49c47) Utilisation de l'exécuteur Shell ... Exécution sur WIN-E0ORPCQUFHS ...
Récupération des modifications ...
HEAD est maintenant à 6a70d96 mise à jour du fichier du runner à distance: accès refusé fatal: impossible d'accéder ' https: // gitlab-ci-token: [email protected]/##DREACTED##/ADInactiveObjectCleanup.git/ = ': L'URL demandée a renvoyé l'erreur: 403 Extraction de 60ea1410 en tant que production ...
fatal: la référence n'est pas un arbre: 60ea1410dd7586f6ed9535d058f07c5bea2ba9c7 ERREUR: échec de génération: état de sortie 128
fichier gitlab-ci.yml:
variables:
Solution: ADInactiveObjectCleanup.sln
before_script:
#- "echo off"
#- 'call "%VS120COMNTOOLS%\vsvars32.bat"'
## output environment variables (usefull for debugging, propably not what you want to do if your ci server is public)
#- echo.
#- set
#- echo.
stages:
- build
#- test
#- deploy
build:
stage: build
script:
- echo building...
- '"%ProgramFiles(x86)%\MSBuild\14.0\Bin\msbuild.exe" "%Solution%" /p:Configuration=Release'
except:
#- tags
Pour résoudre ce problème, j'ai dû m'ajouter en tant que membre du projet. Il s'agit d'un dépôt privé. Je ne sais pas si cela a causé l'échec du coureur avec la configuration des autorisations différentes ou non, mais c'est très possible.
Cette aide article sur gitlab décrit ce problème.
Avec le nouveau modèle d'autorisation en place, votre génération peut parfois échouer. Cela est probablement dû au fait que votre projet essaie d'accéder aux sources d'autres projets et que vous ne disposez pas des autorisations appropriées. Dans le journal de build, recherchez des informations sur les messages 403 ou d'accès interdit.
En tant qu'administrateur, vous pouvez vérifier que l'utilisateur est un membre du groupe ou du projet auquel il essaie d'accéder, et vous pouvez emprunter l'identité du L'utilisateur doit réessayer la génération défaillante afin de vérifier que tout est correct.
Dans la page du projet, cliquez sur l'engrenage des paramètres, puis sur les membres. Ajoutez-vous (ou générez des générations d'utilisateurs) en tant que membre du projet. J'ai utilisé le rôle "Master", mais basé sur ce document vous pouvez probablement utiliser le rôle "Reporter" au minimum. Le rôle de journaliste est le moindre privilège qui a toujours accès au "Pull project code". Cela a supprimé mon erreur 403 et m'a permis de continuer.
Il semble que vous deviez ajouter ajouter une commande cd
pour imprimer le répertoire courant dans votre script avant. Ensuite, allez corriger les autorisations pour accéder au parent de ce dossier. Si vous avez installé votre runner gitlab sur c:\glrunner
, c'est probablement c:\glrunner\builds
autorisation que vous devez corriger.
Le deuxième problème est que vous devrez peut-être forcer un nouveau clone git en supprimant le dossier builds.
Vous souhaiterez peut-être modifier les informations de connexion pour le service du runner gitlab en un gitlabuser
qui devrait être un compte non administrateur, qui peut avoir moins de privilèges que le compte LOCAL SYSTEM que votre runner gitlab utilise par défaut.
Si vous voulez savoir qui est connecté, ajoutez également set
à votre script avant, et vous obtiendrez un vidage de variable d'environnement. De là, vous pouvez voir quel compte est connecté, où se trouve son PROFIL D'UTILISATEUR et d'autres choses.