O que é Gitlab CI?
Gitlab CI é um serviço de integração contínua do Gitlab que permite a automatização de testes, builds, empacotamento, deploy, entre outras atividades. Através de pipelines configuráveis no próprio Gitlab, é possível criar um fluxo de trabalho automatizado que agiliza a entrega e melhora a qualidade do software.
Como configurar o Gitlab CI em um projeto Symfony?
A configuração do Gitlab CI em um projeto Symfony é relativamente simples, basta criar um arquivo .gitlab-ci.yml na raiz do projeto. O arquivo pode ter basicamente três etapas: before_script, script e after_script. A etapa before_script é responsável por instalar as dependências necessárias para o projeto, a etapa script executa as ações que serão automatizadas e a etapa after_script é responsável pela limpeza de arquivos temporários e outras ações necessárias após a execução do pipeline.
Como realizar testes de unidade no Symfony através do Gitlab CI?
O PHPUnit é o framework padrão de testes de unidade no Symfony, para realizá-los através do Gitlab CI basta configurar o arquivo .gitlab-ci.yml com o comando “phpunit” na etapa script. Para executar o PHPUnit com cobertura de código, basta adicionar a flag –coverage-clover na configuração do comando.
Como realizar testes de integração no Symfony através do Gitlab CI?
Os testes de integração no Symfony podem ser realizados através do PHPUnit também, porém utilizando a classe KernelTestCase. Para isso, basta criar uma etapa before_script instanciando o kernel da aplicação, e na etapa script executar os testes que utilizam este kernel.
Como realizar testes funcionais no Symfony através do Gitlab CI?
Os testes funcionais no Symfony podem ser realizados com o framework nativo do Symfony, o Symfony Panther. É necessário criar uma etapa before_script instalando as dependências necessárias e criar uma etapa script para a execução dos testes. O Panther utiliza o Driver BrowserKit, o que possibilita simular o comportamento do usuário no navegador.
Como realizar builds com o Gitlab CI em um projeto Symfony?
Para realizar builds com o Gitlab CI em um projeto Symfony é necessário criar uma etapa script que compile e empacote o projeto. O comando “php bin/console cache:clear –env=prod” deve ser executado para limpar o cache do projeto antes da compilação. O empacotamento do projeto pode ser realizado através da criação de um arquivo .tar.gz utilizando o comando “tar -zcvf nome_do_arquivo.tar.gz nome_do_diretório”.
Como realizar deploy automático com o Gitlab CI em um projeto Symfony?
O deploy automático com o Gitlab CI em um projeto Symfony pode ser realizado através da utilização das funções do Gitlab, como o Gitlab Runner que executa pipelines localmente, evitando a necessidade de uma configuração adicional no servidor. É necessário criar uma etapa após o script de build que execute o deploy no servidor, utilizando uma chave SSH previamente configurada no servidor.
Como utilizar variáveis de ambiente no Gitlab CI em um projeto Symfony?
As variáveis de ambiente no Gitlab CI podem ser configuradas na seção “variables” do arquivo .gitlab-ci.yml. É possível configurar variáveis de ambiente específicas para uma etapa do pipeline ou para todo o pipeline. Estas variáveis podem ser utilizadas no script através da notação “$VARIAVEL”.
Como integrar o Gitlab CI com o Gitlab Pages em um projeto Symfony?
O Gitlab Pages é um serviço do Gitlab que permite hospedar páginas estáticas diretamente do repositório do Gitlab. Para integrar o Gitlab CI com o Gitlab Pages em um projeto Symfony, é necessário criar uma etapa após a compilação que copie os arquivos estáticos para o diretório “public” do projeto. É importante criar um arquivo .gitlab-ci.yml na raiz do projeto e configurar o pipeline para o Gitlab Pages.
Como realizar o deploy através do Gitlab CI em um servidor sem SSH?
Em alguns casos, não é possível utilizar conexões SSH para realizar o deploy através do Gitlab CI, seja por políticas de segurança da empresa ou por restrições do servidor. Nestes casos, é possível utilizar serviços de FTP ou SFTP, que permitem o acesso ao servidor através das portas 21 ou 22, respectivamente. Para isso, é necessário instalar o pacote “lftp” no servidor e configurar o pipeline com os comandos de upload dos arquivos via FTP ou SFTP.