Hola hola
Quiero hablar sobre mi experiencia configurando la integración de GitLab y AppCenter a través de BitBucket.
La necesidad de tal integración surgió durante la configuración del lanzamiento automático de pruebas de IU para un proyecto multiplataforma en Xamarin. Un tutorial detallado debajo del corte!
* Sobre la automatización de las pruebas de IU en condiciones multiplataforma, haré un artículo separado si el público está interesado.
Tal material desenterró solo un artículo . Por lo tanto, mi artículo puede ayudar a alguien.
Tarea : Configure el inicio automático de las pruebas de IU en AppCenter, mientras que nuestro equipo usa GitLab como sistema de control de versiones.
El problema resultó ser que AppCenter no se integra directamente con GitLab. Como una de las soluciones, se eligió un bypass a través de BitBucket.
Pasos
1. Crear un repositorio de BitBucket vacío
No veo la necesidad de describirlo con más detalle :)
2. Configurar GitLab
Necesitamos eso cuando los cambios de inserción / fusión al repositorio se vierten también en BitBucket. Para hacer esto, agregue el corredor (o edite el archivo .gitlab-ci.yml existente).
Primero, agregue comandos a la sección before_scripts
- git config --global user.email "user@email" - git config --global user.name "username"
Luego agregue el siguiente comando a la etapa deseada:
- git push --mirror https://username:password@bitbucket.org/username/projectname.git
En mi caso, obtuve ese archivo
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 la compilación, verificamos que nuestros cambios / archivos estén basados en BitBucket.
* Como se ha demostrado en la práctica, la configuración de claves SSH es opcional. Pero, por si acaso, le daré el algoritmo de configuración de conexión a través de SSH a continuación
Conexión SSHPrimero necesita generar una clave SSH. Se han escrito muchos artículos sobre esto. Para ver un ejemplo, puedes mirar aquí .
Las claves generadas se parecen a esto:

A continuación, la clave secreta debe agregarse como una variable en GitLab. Para hacer esto, vaya a Configuración> CI / CD> Variables de entorno. Agregue TODOS los contenidos del archivo en el que guardó la clave privada. Vamos a nombrar la variable SSH_PRIVATE_KEY.
* este archivo, a diferencia de un archivo de clave pública, no tendrá una extensión

Genial, entonces debes agregar la clave pública a BitBucket. Para hacer esto, abra el repositorio, vaya a Configuración> Teclas de acceso.

Luego haga clic en Agregar clave y pegue el contenido del archivo con la clave pública (archivo con la extensión .pub).
El siguiente paso es usar las teclas en gitlab-runner. Use estos comandos, pero especifique sus datos en lugar de asteriscos
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. Configure AppCenter
Creamos una nueva aplicación en AppCenter.

Especificar el idioma / plataforma

A continuación, vaya a la sección Compilación de la aplicación recién creada. Seleccionamos BitBucket y el repositorio creado en el paso 1 allí.
Ok, ahora necesitas configurar la compilación. Para hacer esto, busca el ícono de ajustes

En principio, todo es intuitivo allí. Seleccionamos el proyecto y la configuración. Si es necesario, habilite el lanzamiento de pruebas después de la compilación. Comenzarán automáticamente.
En principio, eso es todo. Suena fácil, pero, naturalmente, no todo saldrá bien. Por lo tanto, describiré algunos errores que encontré mientras trabajaba:
'ssh-keygen' no se reconoce como un comando interno o externo.Surge porque la ruta a ssh-keygen.exe no se agrega a las variables de entorno.
Hay dos opciones: agregar C: \ Archivos de programa \ Git \ usr \ bin a Variables de entorno (se aplicará después de reiniciar la máquina) o iniciar la consola desde este directorio.
AppCenter conectado a la cuenta incorrecta de BitBucket?Para resolver el problema, debe desatar la cuenta de BitBucket de AppCenter. Entramos en la cuenta de BitBucket incorrecta, vamos al perfil del usuario.

A continuación, vaya a Configuración> Administración de acceso> OAuth

Haga clic en Revocar para desatar la cuenta.

Después de eso, debe iniciar sesión con la cuenta de BitBucket necesaria
* En casos extremos, también borre la memoria caché del navegador
Ahora ve al AppCenter. vaya a la sección Compilar, haga clic en Desconectar cuenta de BitBucket

Cuando se desata la cuenta anterior, vinculamos AppCenter nuevamente. Ahora a la cuenta deseada.
'eval' no se reconoce como un comando interno o externoUsar en lugar del comando
- eval $(ssh-agent -s)
Comando:
- ssh-agent
En algunos casos, deberá especificar la ruta completa a C: \ Archivos de programa \ Git \ usr \ bin \ ssh-agent.exe, o agregar esta ruta a las variables del sistema en la máquina donde se ejecuta el corredor
AppCenter Build intenta iniciar una compilación para un proyecto desde un repositorio de bitBucket irrelevanteEn mi caso, el problema surgió porque trabajé con varias cuentas. Decidí borrar el caché.