Olá, olá!
Quero falar sobre minha experiência na configuração da integração do GitLab e do AppCenter via BitBucket.
A necessidade dessa integração surgiu durante a configuração do início automático de testes de interface do usuário para um projeto de plataforma cruzada no Xamarin. Um tutorial detalhado sob o corte!
* Na automação do teste de interface do usuário em condições de plataforma cruzada, criarei um artigo separado se o público estiver interessado.
Esse material desenterrou apenas um artigo . Portanto, meu artigo pode ajudar alguém.
Objetivo : configurar o início automático de testes de interface do usuário no AppCenter, enquanto nossa equipe usa o GitLab como um sistema de controle de versão.
O problema acabou sendo que o AppCenter não se integra diretamente ao GitLab. Como uma das soluções, um desvio através do BitBucket foi escolhido.
Passos
1. Crie um repositório BitBucket vazio
Não vejo a necessidade de descrevê-lo com mais detalhes :)
2. Configure o GitLab
Precisamos que, quando push / mesclar para o repositório, as alterações também sejam derramadas no BitBucket. Para fazer isso, adicione o corredor (ou edite o arquivo .gitlab-ci.yml existente).
Primeiro, adicione comandos à seção before_scripts
- git config --global user.email "user@email" - git config --global user.name "username"
Em seguida, adicione o seguinte comando ao estágio desejado:
- git push --mirror https://username:password@bitbucket.org/username/projectname.git
No meu caso, eu tenho esse arquivo
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
Iniciamos a compilação, verifique se nossas alterações / arquivos são baseados no BitBucket.
* Como a prática demonstrou, a configuração de chaves SSH é opcional. Mas, apenas no caso, darei o algoritmo de configuração da conexão através do SSH abaixo
Conexão SSHPrimeiro você precisa gerar uma chave SSH. Muitos artigos foram escritos sobre isso. Para um exemplo, você pode procurar aqui .
As chaves geradas são mais ou menos assim:

Em seguida, a chave secreta precisa ser adicionada como uma variável no GitLab. Para fazer isso, vá para Configurações> CI / CD> Variáveis de ambiente. Adicione TODO o conteúdo do arquivo no qual você salvou a chave privada. Vamos nomear a variável SSH_PRIVATE_KEY.
* este arquivo, diferente de um arquivo de chave pública, não terá extensão

Ótimo, então você precisa adicionar a chave pública ao BitBucket. Para fazer isso, abra o repositório, vá para Configurações> Teclas de acesso.

Em seguida, clique em Adicionar chave e cole o conteúdo do arquivo com a chave pública (arquivo com a extensão .pub).
O próximo passo é usar as chaves no gitlab-runner. Use estes comandos, mas especifique seus dados em vez 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 o AppCenter
Criamos um novo aplicativo no AppCenter.

Especifique o idioma / plataforma

Em seguida, vá para a seção Compilar do aplicativo recém-criado. Selecionamos o BitBucket e o repositório criado na etapa 1.
Ok, agora você precisa configurar a compilação. Para fazer isso, localize o ícone de roda dentada

Em princípio, tudo é intuitivo lá. Selecionamos o projeto e a configuração. Se necessário, ative o lançamento de testes após a compilação. Eles iniciarão automaticamente.
Em princípio, é tudo. Parece fácil, mas, naturalmente, tudo não vai bem. Portanto, descreverei alguns erros que encontrei enquanto trabalhava:
'ssh-keygen' não é reconhecido como um comando interno ou externo.Ele surge porque o caminho para o ssh-keygen.exe não foi adicionado às variáveis de ambiente.
Existem duas opções: adicione C: \ Arquivos de programas \ Git \ usr \ bin às variáveis de ambiente (serão aplicadas após a reinicialização da máquina) ou inicie o console nesse diretório.
AppCenter conectado à conta BitBucket errada?Para resolver o problema, você precisa desatar a conta do BitBucket do AppCenter. Entramos na conta BitBucket errada, acessamos o perfil do usuário.

Em seguida, vá para Configurações> Gerenciamento de acesso> OAuth

Clique em Revogar para desatar a conta.

Depois disso, você precisa fazer login na conta BitBucket necessária
* Em casos extremos, limpe também o cache do navegador
Agora vá para o AppCenter. vá para a seção Build, clique em Desconectar conta BitBucket

Quando a conta antiga é desatada, vinculamos o AppCenter novamente. Agora para a conta desejada.
'eval' não é reconhecido como um comando interno ou externoUse em vez do comando
- eval $(ssh-agent -s)
Comando:
- ssh-agent
Em alguns casos, você precisará especificar o caminho completo para C: \ Arquivos de Programas \ Git \ usr \ bin \ ssh-agent.exe ou adicionar esse caminho às variáveis do sistema na máquina em que o corredor está sendo executado
O AppCenter Build tenta iniciar uma compilação para um projeto a partir de um repositório irrelevante bitBucketNo meu caso, o problema surgiu porque eu trabalhei com várias contas. Eu decidi limpar o cache.