Olá pessoal, nesta segunda parte vamos configurar nossa esteira no Gitlab, utilizando o repositório que está no Github.

Na primeira parte desse artigo, configuramos uma esteira no Github Actions.

Para se utilizar o fonte que está no Github, dentro do Gitlab, temos que criar uma permissão, onde o Gitlab poderá acessar os repositórios do Github.

Inicialmente, vamos seguir esses passos:

Clique em New Project em seu Gitlab:

Depois disso, vá até a opção CI/CD for external repo e clique no botão Github.

Depois de clicar no botão, o Github irá abrir uma página para você colocar suas credenciais, depois disso, o Github te dará um token, para você associar ao Gitlab.

Para fazer isso clique no link Personal Access Token.

O Github, irá abrir essa página, para a criação do token

Gere um novo token no botão Generate new token

Logo após ser criado o token, coloque o token gerado no Gitlab e depois disso mostrará todos os seus repositórios que estão no Github

Clique em Connect no repositório que irá usar, e aguarde a sincronização. Depois de sincronizado, ficará assim:

Antes de configurarmos a esteira, vamos criar variáveis com dados da conta do Azure.

Antes de coloca-las no Gitlab, precisamos de uma permissão do Azure, para fazermos o deploy.

Para essa permissão do Azure, temos que realizar um passo a passo no shell do Azure, para criar uma senha de interação entre o Gitlab e o Azure. Vá até ao endereço: https://shell.azure.com/

Escolha a sua conta, e irá abrir essa tela:

Digite o comando:

az account list

Depois disso pegue copie o conteúdo da propriedade id, e digite esse outro comando:

az account set -- subscription=”[conteudo da propriedade id]”

Com isso, temos certeza que vamos realizar o cadastro da interação do Gitlab com Azure nesta subscription.

Agora vamos digitar o comando, para criar uma senha para autenticar entre os serviços

az ad sp create-for-rbac --role=”Contributor” --scopes=”/subscriptions/[conteudo da propriedade id]”

O resultado será bem parecido com esse:

{
"appId": "00000000-0000-0000-0000-000000000000",
"displayName": "azure-cli",
"name": "http://azure-cli",
"password": "0000-0000-0000-0000-000000000000",
"tenant": "00000000-0000-0000-0000-000000000000"
}

Depois de ter essas informações, vá no menu lateral Settings > CD/CI, e abra a sessão Variables

$AZ_SERVICE_PRINCIPAL_URL = [propriedade appId]
$AZ_SERVICE_PRINCIPAL_SECRET = [propriedade password]
$AZ_SERVICE_PRINCIPAL_TENANT = [propriedade tenant]
$AZ_APP_NAME = [nome do webapp no azure]
$AZ_APP_RESOURCE_GROUP = [nome do grupo de recursos do azure]

Adicione cada propriedade com seu valor, como no bloco acima.

Agora dentro do repositório, vamos configurar nossa esteira, clique em Set up CI/CD

Irá abrir o editor, para a configuração passo a passo;

Vejam que também, o arquivo é muito intuitivo para você entender o que cada coisa faz. Para criação dos passos, você precisa dizer quais stages, vão ser executados.

Em nosso exemplo vamos executar o stage de deploy. E os comandos de build e deploy estão na sessão script;

Como estamos usando o shell do Azure, para fazer a realização do deploy via linha de comando, ele irá precisar das variáveis que colocamos anteriormente.

Depois que ele faz o login em sua conta do Azure, ele executa os comandos build e publish no dotnet

Logo após isso, ele gera um .zip com o pacote, e faz o deploy em seu webapp.

E como no Github Actions, somente a esteira vai funcionar, quando tiver uma interação (Push) com a branch master.

Estando corretamente configurado, dê commit do arquivo em seu branch.

Agora, veja no menu lateral:

Você poderá ver sua esteira funcionando. Caso esteja, tudo correto o deploy será feito com sucesso.

O fonte da API que está no Github, foi publicada com sucesso no WebApp do Azure: APIGILAB

Nesta segunda parte vimos como configurar o Gitlab CD/CI, para realizar o deploy no Azure.

Espero que tenham gostado desta pequena série de como realizar o deply de forma automática, utilizando ferramentas de CD/CI

Até a próxima…

--

--

Fernando Mendes
JunDevelopers

Software Architect .NET C# | Microsoft MVP 🏆🏆 | Co-Founder community JunDevelopers