Configurando esteiras de CD/CI com Github e Gitlab— Parte 1
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..