Configurando esteiras de CD/CI com Github e Gitlab— Parte 1

Fernando Mendes
JunDevelopers
Published in
4 min readJul 29, 2020

Olá Pessoal, tudo bem?

Creio que todos nós que desenvolvemos temos a necessidade de entregar nosso software com qualidade e realizar o deploy de forma automática. Há alguns anos atrás realizávamos esse deploy de forma manual, e com isso muitas vezes, gerando retrabalho e dor de cabeça.

O tal da frase “na minha máquina funciona” era sempre nossa desculpa, e fazendo processos automáticos essa frase não é mais desculpa. Temos ferramentas para fazer essa entrega com qualidade e que funcione em qualquer ambiente.

Aqui vou listar 2 ferramentas, onde possamos fazer o build, executar testes unitários, e o deploy de nossas aplicações nos ambientes produtivos.

Para quem quiser, existe um curso que está no Academia DotNet, no qual eu leciono, que ensino a utilizar o Azure DevOps, para realizar o build e deploy de forma automática de sua aplicação no Azure.

Caso tenha interesse, fale comigo, diz que você leu esse artigo, que consigo um desconto especial de 10% para adquirir esse curso.

Para nossos 2 exemplos, vamos usar o mesmo repositório que estará no Github, e à partir dele vamos fazer o deploy em WebApp´s diferentes.

Então fui ao Azure, e criei meus 2 WebApp´s com os nomes:

Agora, vamos lá, vou listar por primeiro o GitHub Actions, que é a esteira do Github para realizar o build e deploy das aplicações.

No Github, irei usar esse repositório para fazer o deploy.

Para configurar a esteira, vá até a opção Actions no menu superior:

Clique no link set up a workflow yourself, irá abrir o editor para você configurar o passo a passo de sua esteira.

Clique neste link, onde contem um arquivo de exemplo para dotnet core.

Vejam que a estrutura do do .yml, é muito intuitiva.

Vejam que na segunda linha, ele diz que somente irá iniciar o processo de CD/CI, quando haver um PUSH ou PULL REQUEST na branch master.

O restante no arquivo, como disse, é bem intuitivo.

Percebam, que o passo à seguir, ele executa os comandos de build e publish do dotnet.

Altere os comandos para:

dotnet build NomeSolucao.sln

dotnet publish Api.csproj -c Release -o myapp

Caso esteja tudo correto, o próximo passo será o deploy no webapp do Azure.

A variável secrets.AZURE_WEBAPP_PUBLISH_PROFILE você necessitará obter do Azure, e adicionar ao Github.

Para obter o perfil de publicação, vá no Azure, em seu webapp e clique em Obter perfil de publicação.

Será feito o download de um arquivo, onde você vai obter o conteúdo do mesmo e colocar no campo Value do secret AZURE_WEBAPP_PUBLISH_PROFILE

Depois de ter copiado o conteúdo do arquivo, vá até o menu Settings > Secret, e adicione seu publish profile

Depois disso, dê o commit no arquivo de configuração.

Vá até a aba Actions, e veja o processo de CD/CI foi iniciado, depois de um push que fizemos, conforme configurado no arquivo.

Podemos ver a evolução da esteira, e caso estiver tudo correto, o resultado será esse:

Ao acessar o link do Azure, Voilà…

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

Nesta primeira parte vimos como configurar o Github Actions, para realizar o deploy no Azure. A configuração da esteira no Gitlab, estará na parte 2 deste artigo, o link está aqui:

Espero que tenham gostado dessa primeira parte!!

Até o próximo..

--

--

Fernando Mendes
JunDevelopers

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