Meus sites
Sites relevantes
Contato
Email: devanon.kyosha@gmail.com
Meus sites
Sites relevantes
Contato
Try scrolling the rest of the page to see this option in action.
Sejam bem vindos
Fabrício Web Home Page
Desenvolvimento PHP Laravel, Manutenção em sites PHP, Arquitetura de serviços Web, Geração de endpoints REST API e Tutoriais.
Fabrício Web Home Page
Desenvolvimento PHP Laravel, Manutenção em sites PHP, Arquitetura de serviços Web, Geração de endpoints REST API e Tutoriais.
Sejam bem vindos à página Fabrício Web. Eu sou o Fabrício Dias.
Passarei aqui uma parte significativa de minha experiência. Acompanhe minhas publicações. Vou publicar amenidades nerds também. O site está em desenvolvimento, e vou colocar melhorias ainda. E com certeza vou adicionar interação com o leitor em breve.
Devops - Deploy de aplicações usando Circle CI
Entenda como construir uma build usando Circle CI de maneira automatizada.
Introdução
A lógica é a mesma. O deploy é realizado usando uma máquina Docker, mas aqui a sintaxe é diferente. Vou explicar somente as diferenças.
A configuração
A configuração e operação referente às builds são todas realizadas no site https://circleci.com/.
E clique no botão Go to Application.
Na próxima tela você fará o login. Se o seu projeto está no Bitbucket, você loga com sua conta do Bitbucket. Se o seu projeto está no Github, você loga com sua conta do Github.
Na próxima tela você escolhe sua organização.
E por fim você escolhe qual projeto você quer que o Circle CI faça a build.
Então escolha a opção Faster.
Esta opção vai forçar a criação de um branch no seu projeto, com o arquivo de configuração, e automaticamente vai lhe redirecionar à página de build do projeto.
No seu branch novo
Foi criado um novo branch com a pasta .circleci.
Dentro dela há o arquivo config.yml.
Com uma versão “hello word” da sua build. E é nesse arquivo que a máquina Docker será configurada.
A máquina que fará o deploy
# CircleCI configuration file jobs version: 2.1 jobs: # Job one with a unique name master: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ master, << pipeline.git.branch >> ] steps: - run: name: Fazendo a publicação command: | sudo apt update sudo apt install git git-ftp -y git config git.ftp.syncroot ./ git config git-ftp.url $FTP_HOST_BLOG git config git-ftp.user $FTP_USER git config git-ftp.password $FTP_PASSWORD git ftp push # Job two with a unique name develop: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ develop, << pipeline.git.branch >> ] steps: - run: name: Um teste ordinário command: | echo "Commit efetuado com sucesso" init: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ init, << pipeline.git.branch >> ] steps: - run: name: Inicialização do repositório command: | sudo apt update sudo apt install git git-ftp -y git config git.ftp.syncroot ./ git config git-ftp.url $FTP_HOST_BLOG git config git-ftp.user $FTP_USER git config git-ftp.password $FTP_PASSWORD git ftp init workflows: # Name of workflow principal: # List of jobs that will run jobs: - master - develop - init |
Aqui podemos determinar as diferenças. Pelo fato do Circle CI não disponibilizar botões para escolhermos qual build executar, usamos um recurso técnico. 3 branchs configurados no arquivo para que a build funcione corretamente. Fazendo o commit em init, seu site é iniciado. Fazendo commit em develop, será inerte e não haverá nenhum deploy. Fazendo o commit em master, fará o commit das alterações no site já iniciado em init.
As variáveis do projeto
Exatamente como no Bitbucket, servem para manter informações sensíveis sob proteção, somente você terá acesso a tais informações.
Clique em Project Settings.
E em Environment Variables.
Aqui você adiciona as variáveis.
Entendendo o arquivo config.yml
# CircleCI configuration file jobs version: 2.1 jobs: # Job one with a unique name |
Esse é o início do arquivo. Basicamente é o padrão para qualquer build que queira executar.
develop: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ develop, << pipeline.git.branch >> ] steps: - run: name: Um teste ordinário command: | echo "Commit efetuado com sucesso" |
Esse é um job (uma tarefa, mas usamos o termo em inglês a nível de padronização do jargão). Note que o nome develop aparece 2 vezes, esse é o branch para o qual esse job aponta. As linhas chave são:
- when: condition: equal: [ develop, << pipeline.git.branch >> ] |
Que vão garantir que somente commits em develop vão acionar os comandos. Tudo após a linha -run: são os comando a serem executados em sequência.
name: Um teste ordinário |
É o nome que irá aparecer no momento que a build estiver sendo executada.
Dito isso, fica simples entender os jobs init:
init: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ init, << pipeline.git.branch >> ] steps: - run: name: Inicialização do repositório command: | sudo apt update sudo apt install git git-ftp -y git config git.ftp.syncroot ./ git config git-ftp.url $FTP_HOST_BLOG git config git-ftp.user $FTP_USER git config git-ftp.password $FTP_PASSWORD git ftp init |
E master:
master: docker: - image: cimg/base:2022.05 steps: - checkout - when: condition: equal: [ master, << pipeline.git.branch >> ] steps: - run: name: Fazendo a publicação command: | sudo apt update sudo apt install git git-ftp -y git config git.ftp.syncroot ./ git config git-ftp.url $FTP_HOST_BLOG git config git-ftp.user $FTP_USER git config git-ftp.password $FTP_PASSWORD git ftp push |
As linhas mais importantes do arquivo são estas:
workflows: # Name of workflow principal: # List of jobs that will run jobs: - master - develop - init |
Pois elas indicam os jobs que serão executados a cada commit detectado em seu repositório.
Nos jobs, os verbetes $FTP_HOST_BLOG, $FTP_USER e $FTP_PASSWORD são suas variáveis de sistema configuradas. No momento da build, esses nomes serão substituídos pelos valores que configurou. Sempre atento às identações, porque em arquivos YML, identação ruim conta como erro. Os espaços antes dos comandos são essenciais.
Conclusão
Fazer uma build é relativamente simples, você conseguirá fazer sem maiores problemas. O Circle CI é o ideal para isso.