Intégration AppCenter et GitLab

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.git

Dans 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.git

Nous 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 ici.
Les clĂ©s gĂ©nĂ©rĂ©es ressemblent Ă  ceci :
Intégration AppCenter et GitLab

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
Intégration AppCenter et GitLab

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.

Intégration AppCenter et GitLab

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/*****/*****.git

3. Configuration d'AppCenter

Nous créons une nouvelle application sur AppCenter.

Intégration AppCenter et GitLab

Spécifiez la langue/plateforme

Intégration AppCenter et GitLab

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

Intégration AppCenter et GitLab

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.

Intégration AppCenter et GitLab

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

Intégration AppCenter et GitLab

Cliquez sur Révoquer pour dissocier votre compte.

Intégration AppCenter et GitLab

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

Intégration AppCenter et GitLab

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-agent

Dans 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

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster