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
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
As claves xeradas son algo así:
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
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.
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.
Especifique o idioma/plataforma
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
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.
A continuación, vai a Configuración > Xestión de accesos > OAuth
Fai clic en Revogar para desvincular a túa conta.
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
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