Integración de AppCenter e GitLab

Tryam, ola!

Gustaríame falar da miña experiencia na configuración da integración de GitLab e AppCenter a través de BitBucket.

A necesidade desta integración xurdiu ao configurar o lanzamento automático de probas de IU para un proxecto multiplataforma en Xamarin. Tutorial detallado debaixo do corte!

* Farei un artigo separado sobre a automatización das probas da IU en condicións multiplataforma se o público está interesado.

Só desenterrei un material deste tipo un artigo. Polo tanto, o meu artigo pode axudar a alguén.

Tarefa: configure o lanzamento automático de probas de IU en AppCenter, dado que o noso equipo usa GitLab como sistema de control de versións.

problema Resultou que AppCenter non se integra directamente con GitLab. Elixiuse Bypass a través de BitBucket como unha das solucións.

Pasos

1. Crea un repositorio baleiro en BitBucket

Non vexo a necesidade de describir isto con máis detalle :)

2. Configurando GitLab

Necesitamos que ao empurrar/fusionar no repositorio, os cambios tamén se carguen en BitBucket. Para iso, engade un corredor (ou edite o ficheiro .gitlab-ci.yml existente).

Primeiro engadimos comandos á sección before_scripts

 - git config --global user.email "user@email"
 - git config --global user.name "username"

A continuación, engade o seguinte comando á fase desexada:

- git push --mirror https://username:[email protected]/username/projectname.git

No meu caso, este é o ficheiro que teño:

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

Lanzamos a compilación, comprobamos que os nosos cambios/ficheiros estean en BitBucket.
* como demostrou a práctica, configurar chaves SSH é opcional. Pero, por se acaso, proporcionarei un algoritmo para configurar unha conexión a través de SSH a continuación

Conexión vía SSH

Primeiro cómpre xerar unha clave SSH. Escribiuse moitos artigos sobre isto. Por exemplo, podes mirar aquí.
As claves xeradas son algo así:
Integración de AppCenter e GitLab

Máis A chave secreta debe engadirse como variable a GitLab. Para facelo, vai a Configuración > CI/CD > Variables de ambiente. Engade TODO o contido do ficheiro no que gardou a chave secreta. Chamemos á variable SSH_PRIVATE_KEY.
* este ficheiro, a diferenza do ficheiro de chave pública, non terá a extensión
Integración de AppCenter e GitLab

Xenial, a continuación cómpre engadir a chave pública a BitBucket. Para iso, abra o repositorio e vai a Configuración > Teclas de acceso.

Integración de AppCenter e GitLab

Aquí facemos clic en Engadir clave e inserimos o contido do ficheiro coa chave pública (ficheiro coa extensión .pub).

O seguinte paso é usar as claves en gitlab-runner. Use estes comandos, pero substitúa os asteriscos polos seus datos

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 [email protected]

mirror:
  stage: mirror
  script:
    - git push --mirror https://****:****@bitbucket.org/*****/*****.git

3. Configurando AppCenter

Creamos unha nova aplicación en AppCenter.

Integración de AppCenter e GitLab

Especifique o idioma/plataforma

Integración de AppCenter e GitLab

A continuación, vai á sección Construír da aplicación recentemente creada. Alí seleccionamos BitBucket e o repositorio creado no paso 1.

Xenial, agora necesitamos configurar a compilación. Para facelo, busca a icona da engrenaxe

Integración de AppCenter e GitLab

En principio, todo é intuitivo. Seleccione un proxecto e configuración. Se é necesario, activa o lanzamento de probas despois da compilación. Comezarán automaticamente.

Basicamente, iso é todo. Parece sinxelo, pero, naturalmente, non todo vai ir ben. Polo tanto, describirei algúns erros que atopei ao traballar:

'ssh-keygen' non se recoñece como un comando interno ou externo.

Tamén ocorre porque o camiño a ssh-keygen.exe non se engade ás variables de ambiente.
Hai dúas opcións: engadir C:Program FilesGitusrbin ás Variables de ambiente (aplicarase despois de reiniciar a máquina) ou lanzar a consola desde este directorio.

AppCenter conectado á conta BitBucket incorrecta?

Para resolver o problema, debes desvincular a túa conta BitBucket de AppCenter. Iniciamos sesión na conta BitBucket incorrecta e imos ao perfil de usuario.

Integración de AppCenter e GitLab

A continuación, vai a Configuración > Xestión de accesos > OAuth

Integración de AppCenter e GitLab

Fai clic en Revogar para desvincular a túa conta.

Integración de AppCenter e GitLab

Despois diso, cómpre iniciar sesión coa conta BitBucket necesaria.
* Como último recurso, tamén borra a caché do teu navegador.

Agora imos ao AppCenter. vai á sección Construír, fai clic en Desconectar conta BitBucket

Integración de AppCenter e GitLab

Cando se desvincula a conta antiga, ligamos de novo o AppCenter. Agora á conta desexada.

'eval' non se recoñece como un comando interno ou externo

Usámolo en lugar dun comando

  - eval $(ssh-agent -s)

Equipo:

  - ssh-agent

Nalgúns casos, terá que especificar a ruta completa a C:Program FilesGitusrbinssh-agent.exe ou engadir esta ruta ás variables do sistema na máquina onde se está a executar o corredor.

AppCenter Build está tentando lanzar unha compilación para un proxecto desde un repositorio de bitBucket obsoleto

No meu caso, o problema xurdiu porque estaba a traballar con varias contas. Decidín borrar a caché.

Fonte: www.habr.com

Engadir un comentario