Bitbucket Pipeline CI/CD usando Git FTP
Introdução
A proposta desse artigo é apresentar de forma resumida uma solução para um ciclo de build/deploy para ambientes locais usando Bitbucket.
Pré Requisitos
Pra prosseguir nesse artigo, considero que você tenha:- Conhecimento básico de Linux
- Conhecimento básico de Bitbucket
- Conhecer Docker - mesmo que superficialmente
Configurando o Servidor
Cada servidor tem um método de conexão, então pesquise como é feita a conexão com o Bitbucket para seu provedor. A maioria deles têm suporte para conexão com o Bitbucket - eu usei para teste o Kinghost. Consulte o suporte.Configurando o Bitbucket
Clique em Repository settings.
E em seguida em Pipelines=>Settings.
E habilite os pipelines.
Configurando o pipeline
Configurando o repositório
Primeiro defina as variáveis do repositório em Repository settings=>Pipelines=>Repository variables.FTP_SERVER, FTP_USER e FTP_PASSWORD
Configurando o pipeline
bitbucket-pipelines.ymlEntendendo o arquivo
Para que o Bitbucket Pipelines funcione, é necessário criar o arquivo bitbucket-pipelines.yml na raiz do seu repositório. A identação é importante. Enquanto em uma linguagem de programação comum isso é apenas um recurso visual para auxiliar o desenvolvedor, o arquivo estará incorreto se todos os recuos não estiverem alinhados.
O arquivo representa uma máquina Docker que é instanciada no momento em que o pipeline é executado, e destruída após a execução. A máquina básica do Bitbucket Pipelines é um Linux Debian, então ela nos apresenta algumas facilidades.
bitbucket-pipelines.yml
O Git FTP realiza uma transação FTP usando o Git, então ele usa a conexão FTP com as regras do Git. Explicarei os scripts.
A inicialização do script
Esta é uma das seções do script - que vai aparecer no menu.
O script que será executado está depois de ‘script:’. A partir daqui, é uma sequência de comandos Linux que serão executados.
O apt
O apt é um comando que vem por padrão no Linux Debian. Ele permite uma gestão eficiente na instalação e remoção de aplicações com suas dependências no Linux, bastando apenas uma conexão com a internet. O comando faz bem mais coisas que isso, mas aqui usamos somente a funcionalidade de instalação. Apt-get é um aliase, então faz a mesma coisa.
- apt update
Atualiza as aplicações com os repositórios centrais. - apt install -y git-ftp
Instala a aplicação Git FTP.
Configurar as variáveis do Git
O Git tem vários comandos, dentre eles o config. Ele permite configurar variáveis que serão usadas pelo Git.- git config git.ftp.syncroot ./
A pasta que será sincronizada com o servidor da aplicação. São estes arquivos que irão subir. - git config git-ftp.url $FTP_SERVER/loja
O servidor. Note que coloquei uma subpasta loja, dentro da qual os arquivos irão ser publicados. - git config git-ftp.user $FTP_USER
O usuário FTP - que o suporte fornecerá para você. - git config git-ftp.password $FTP_PASSWORD
A sua senha de acesso.
A execução contínua do script
Esse é o script que será executado quando o master sofrer alguma alteração. Também estará disponível para ser forçado a execução no menu.
Cuidado extremo com as linhas.
O Git FTP
Os scripts foram construídos dessa maneira por causa de uma particularidade do Git. Lembra que eu disse que o Git FTP vai funcionar usando o FTP com as regras do Git? Pois bem, ele vai literalmente transformar a pasta do servidor em um repositório Git, então ele precisará ser inicializado para que o Git possa ir realizando o deploy à medida que os branches são alterados e publicados.Vejamos as referências do servidor de produção:
- git ftp init
Inicia a pasta no servidor. Só vai ser executado uma única vez, para a primeira publicação - git ftp push
O comando que irá realizar a transação FTP sucessivas vezes, a cada alteração.
Bônus - realizando uma build Maven no repositório
Somente adicione as linhas.E realize demais comandos que julgar necessários.
Realizando a build
Clique em commits e clique no commit que quer executar.
Clique em Run Pipeline.
Selecione o pipeline e clique em Run.
Os quatro scripts que configuramos em nosso pipeline estarão disponíveis no menu.
Conclusão
Realizar uma build/deploy com Bitbucket Pipelines é relativamente fácil. Quem usa Ubuntu sai na frente, pois está familiarizado com o modo de trabalho do Linux Debian.Referências
https://stephanwagner.me/deploy-websites-with-bitbucket-pipelines-and-git-ftp
https://community.atlassian.com/t5/Bitbucket-Pipelines-questions/SFTP-deploy-pipe-creates-build-folder-on-remote-and-fails-after/qaq-p/1053378
https://stackoverflow.com/questions/47313050/bitbucket-to-ftp-with-pipeline-and-git-ftp
Comentários
Postar um comentário