Bonjour bonjour
Je veux parler de mon expérience dans la configuration de l'intégration de GitLab et AppCenter via BitBucket.
La nécessité d'une telle intégration est apparue lors de la configuration du lancement automatique des tests d'interface utilisateur pour un projet multiplateforme sur Xamarin. Un tutoriel détaillé sous la coupe!
* Sur l'automatisation des tests d'interface utilisateur dans des conditions multiplateformes, je ferai un article séparé si le public est intéressé.
Ce matériel n'a déterré qu'un seul article . Par conséquent, mon article peut aider quelqu'un.
Tâche : configurer le lancement automatique des tests d'interface utilisateur sur AppCenter, tandis que notre équipe utilise GitLab comme système de contrôle de version.
Le problème s'est avéré que AppCenter ne s'intègre pas directement avec GitLab. Comme l'une des solutions, un contournement via BitBucket a été choisi.
Étapes
1. Créez un référentiel BitBucket vide
Je ne vois pas la nécessité de le décrire plus en détail :)
2. Configurer GitLab
Nous en avons besoin lorsque les modifications push / fusion vers le référentiel sont également versées sur BitBucket. Pour ce faire, ajoutez le runner (ou modifiez le fichier .gitlab-ci.yml existant).
Tout d'abord, ajoutez des commandes Ă la section before_scripts
- git config --global user.email "user@email" - git config --global user.name "username"
Ajoutez ensuite la commande suivante à l'étape souhaitée:
- git push --mirror https://username:password@bitbucket.org/username/projectname.git
Dans mon cas, j'ai un tel fichier
before_script: - git config --global user.email "user@email" - git config --global user.name "username" stages: - mirror mirror: stage: mirror script: - git push --mirror https://****:*****@bitbucket.org/****/testapp.git
Nous lançons la construction, vérifions que nos modifications / fichiers sont basés sur BitBucket.
* Comme le montre la pratique, la configuration des clés SSH est facultative. Mais, au cas où, je donnerai l'algorithme de configuration de la connexion via SSH ci-dessous
Connexion SSHVous devez d'abord générer une clé SSH. De nombreux articles ont été écrits à ce sujet. Pour un exemple, vous pouvez regarder ici .
Les clés générées ressemblent à ceci:

Ensuite, la clé secrète doit être ajoutée en tant que variable sur GitLab. Pour ce faire, accédez à Paramètres> CI / CD> Variables d'environnement. Ajoutez TOUT le contenu du fichier dans lequel vous avez enregistré la clé privée. Appelons la variable SSH_PRIVATE_KEY.
* ce fichier, contrairement à un fichier de clé publique, n'aura pas d'extension

Très bien, alors vous devez ajouter la clé publique à BitBucket. Pour ce faire, ouvrez le référentiel, accédez à Paramètres> Clés d'accès.

Cliquez ensuite sur Ajouter une clé et collez le contenu du fichier avec la clé publique (fichier avec l'extension .pub).
L'étape suivante consiste à utiliser les clés dans gitlab-runner. Utilisez ces commandes, mais spécifiez vos données au lieu d'astérisques
image: timbru31/node-alpine-git:latest stages: - mirror before_script: - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - git config --global user.email "*****@***" - git config --global user.name "****" - ssh -T git@bitbucket.org mirror: stage: mirror script: - git push --mirror https://****:****@bitbucket.org/*****/*****.git
3. Configurer AppCenter
Nous créons une nouvelle application sur AppCenter.

Précisez la langue / la plateforme

Ensuite, accédez à la section Build de la nouvelle application créée. Nous y sélectionnons BitBucket et le référentiel créé à l'étape 1.
Ok, maintenant vous devez configurer la build. Pour ce faire, recherchez l'icĂ´ne d'engrenage

En principe, tout y est intuitif. Nous sélectionnons le projet et la configuration. Si nécessaire, activez le lancement des tests après la génération. Ils démarreront automatiquement.
En principe, c'est tout. Cela semble facile, mais naturellement, tout ne se passera pas bien. Par conséquent, je décrirai quelques erreurs que j'ai rencontrées en travaillant:
'ssh-keygen' n'est pas reconnu comme une commande interne ou externe.Il se produit car le chemin d'accès à ssh-keygen.exe n'est pas ajouté aux variables d'environnement.
Il existe deux options: ajoutez C: \ Program Files \ Git \ usr \ bin aux variables d'environnement (s'appliquera après le redémarrage de la machine), ou démarrez la console à partir de ce répertoire.
AppCenter connecté au mauvais compte BitBucket?Pour résoudre le problème, vous devez détacher le compte BitBucket d'AppCenter. Nous entrons dans le mauvais compte BitBucket, accédez au profil utilisateur.

Ensuite, accédez à Paramètres> Gestion des accès> OAuth

Cliquez sur Révoquer pour délier le compte.

Après cela, vous devez vous connecter sous le compte BitBucket nécessaire
* Dans les cas extrêmes, effacez également le cache du navigateur
Accédez maintenant à AppCenter. allez dans la section Build, cliquez sur Disconnect BitBucket account

Lorsque l'ancien compte est délié, nous lions à nouveau AppCenter. Passons maintenant au compte souhaité.
'eval' n'est pas reconnu comme une commande interne ou externeUtiliser Ă la place de la commande
- eval $(ssh-agent -s)
Commande:
- ssh-agent
Dans certains cas, vous devrez soit spécifier le chemin d'accès complet à C: \ Program Files \ Git \ usr \ bin \ ssh-agent.exe, soit ajouter ce chemin aux variables système sur la machine sur laquelle runner s'exécute
AppCenter Build essaie de lancer une génération pour un projet à partir d'un référentiel bitBucket non pertinentDans mon cas, le problème est survenu parce que j'ai travaillé avec plusieurs comptes. J'ai décidé de vider le cache.