Tryam, bonjour !
Je voudrais parler de mon expérience dans la mise en place de l'intégration de GitLab et AppCenter via BitBucket.
Le besoin d'une telle intégration est apparu lors de la mise en place du lancement automatique des tests d'interface utilisateur pour un projet multiplateforme sur Xamarin. Tutoriel détaillé en dessous de la coupe !
* Je ferai un article séparé sur l'automatisation des tests d'interface utilisateur dans des conditions multiplateformes si le public est intéressé.
Je n'ai déterré qu'un seul de ces documents . Par conséquent, mon article peut aider quelqu'un.
Tùche: Mettre en place le lancement automatique des tests UI sur AppCenter, étant donné que notre équipe utilise GitLab comme systÚme de contrÎle de version.
problÚme Il s'est avéré qu'AppCenter ne s'intÚgre pas directement à GitLab. Le contournement via BitBucket a été choisi comme l'une des solutions.
Pas
1. Créez un référentiel vide sur BitBucket
Je ne vois pas la nécessité de décrire cela plus en détail :)
2. Configuration de GitLab
Nous en avons besoin lors du transfert/fusion dans le référentiel, les modifications soient également téléchargées sur BitBucket. Pour ce faire, ajoutez un runner (ou modifiez le fichier .gitlab-ci.yml existant).
Nous ajoutons dâabord 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.gitDans mon cas, voici le fichier que j'ai obtenu :
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.gitNous lançons le build, vérifions que nos modifications/fichiers sont sur BitBucket.
* comme la pratique l'a montrĂ©, la configuration des clĂ©s SSH est facultative. Mais, juste au cas oĂč, je fournirai ci-dessous un algorithme pour Ă©tablir une connexion via SSH
Connexion via SSH
Vous devez dâabord gĂ©nĂ©rer une clĂ© SSH. De nombreux articles ont Ă©tĂ© Ă©crits Ă ce sujet. Par exemple, vous pouvez regarder .
Les clés générées ressemblent à ceci :

Suivant La clĂ© secrĂšte doit ĂȘtre ajoutĂ© 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Ă© secrĂšte. Appelons la variable SSH_PRIVATE_KEY.
* ce fichier, contrairement au fichier de clé publique, n'aura pas l'extension

Génial, vous devez ensuite ajouter la clé publique à BitBucket. Pour ce faire, ouvrez le référentiel et accédez à ParamÚtres > Clés d'accÚs.

Ici, nous cliquons sur Ajouter une clé et insérons 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 remplacez les astérisques par vos coordonnées
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/*****/*****.git3. Configuration d'AppCenter
Nous créons une nouvelle application sur AppCenter.

Spécifiez la langue/plateforme

Ensuite, accĂ©dez Ă la section Build de lâapplication nouvellement créée. LĂ , nous sĂ©lectionnons BitBucket et le rĂ©fĂ©rentiel créé Ă l'Ă©tape 1.
Super, nous devons maintenant configurer la build. Pour ce faire, recherchez l'icĂŽne d'engrenage

En principe, tout y est intuitif. Sélectionnez un projet et une configuration. Si nécessaire, activez le lancement des tests aprÚs le build. Ils démarreront automatiquement.
En gros, c'est tout. Cela semble simple, mais, naturellement, tout ne se passera pas sans heurts. Par conséquent, je vais décrire quelques erreurs que j'ai rencontrées en travaillant :
'ssh-keygen' n'est pas reconnu comme une commande interne ou externe.
Cela se produit Ă©galement parce que le chemin dâaccĂšs Ă ssh-keygen.exe nâest pas ajoutĂ© aux variables dâenvironnement.
Il y a deux options : ajouter C:Program FilesGitusrbin aux variables d'environnement (sera appliqué aprÚs le redémarrage de la machine), ou lancer la console depuis ce répertoire.
AppCenter connecté au mauvais compte BitBucket ?
Pour résoudre le problÚme, vous devez dissocier votre compte BitBucket d'AppCenter. Nous nous connectons au mauvais compte BitBucket et accédons au profil utilisateur.

Ensuite, allez dans ParamĂštres > Gestion des accĂšs > OAuth

Cliquez sur Révoquer pour dissocier votre compte.

AprĂšs cela, vous devez vous connecter avec le compte BitBucket requis.
* En dernier recours, videz également le cache de votre navigateur.
Passons maintenant à AppCenter. allez dans la section Build, cliquez sur Déconnecter le compte BitBucket

Lorsque l'ancien compte est dissocié, nous associons à nouveau AppCenter. Passons maintenant au compte souhaité.
'eval' n'est pas reconnu comme une commande interne ou externe
Nous l'utilisons Ă la place d'une commande
- eval $(ssh-agent -s)Ăquipe:
- ssh-agentDans certains cas, vous devrez soit spécifier le chemin complet vers C:Program FilesGitusrbinssh-agent.exe, soit ajouter ce chemin aux variables systÚme sur la machine sur laquelle le programme d'exécution s'exécute.
AppCenter Build tente de lancer une build pour un projet à partir d'un référentiel bitBucket obsolÚte
Dans mon cas, le problÚme est survenu parce que je travaillais avec plusieurs comptes. J'ai décidé de vider le cache.
Source: habr.com
