Introdução
No ambiente competitivo atual de desenvolvimento de software, a integração contínua (CI) e a entrega contínua (CD) são fundamentais para a entrega rápida e eficiente de aplicações. Este guia se concentra na implementação de práticas de DevOps em projetos Apex, utilizando ferramentas como Jenkins e Git. Aprenderemos a configurar um pipeline de CI/CD que permite a automação do processo de construção, teste e implantação de código, visando alcançar eficiência e qualidade no desenvolvimento de aplicações Salesforce. Ao longo do tutorial, iremos explorar passo a passo como configurar um projeto Apex com um fluxo de trabalho de DevOps que incorpora testes automatizados e atualizações contínuas, assegurando que cada versão do código na plataforma Salesforce seja liberada com confiança e rapidez.
Etapas
Pré-requisitos
Antes de começarmos, verifique se você possui uma conta Salesforce Developer, acesso ao GitHub e o Jenkins devidamente instalado e configurado em seu ambiente. Certifique-se também de ter o Salesforce CLI instalado para facilitar o gerenciamento do seu projeto Apex.
commands# Verifique a instalação do Salesforce CLI
sfdx --versionCriação do Repositório Git
Crie um novo repositório no GitHub onde você armazenará seu código Apex. Inicialize um repositório localmente e conecte-o ao repositório remoto. Caso não saiba como fazer, siga estes comandos:
commands# Inicialize um repositório Git
git init my-apex-project
cd my-apex-project
# Adicione o repositório remoto
git remote add origin https://github.com/usuario/nome-do-repositorio.gitConfiguração do Projeto Apex
Utilize o Salesforce CLI para criar um novo projeto. Isso gerará a estrutura de diretórios necessária para desenvolver sua aplicação Apex.
commands# Crie um novo projeto utilizando o Salesforce CLI
sfdx force:project:create --projectname my-apex-project
# Navegue até o diretório do projeto
cd my-apex-projectCriação de um Componente Apex
Crie um novo componente Apex e implemente uma lógica simples. Isso pode ser feito criando um arquivo Apex no diretório `force-app/main/default/classes`. Exemplo de um controlador simples:
HelloWorldController.clspublic with sharing class HelloWorldController { public String getGreeting() { return 'Hello, World!'; } }
Escrita de Testes Unitários
Escreva testes unitários para garantir que sua lógica está funcionando como esperado. os testes devem estar em `force-app/main/default/classes` também. Abaixo está um exemplo de teste para o controller que criamos:
HelloWorldControllerTest.cls@isTest public class HelloWorldControllerTest { @isTest static void testGetGreeting() { HelloWorldController controller = new HelloWorldController(); System.assertEquals('Hello, World!', controller.getGreeting()); } }
Configuração do Jenkins
Configure o Jenkins para automação do processo de CI. Crie um novo trabalho no Jenkins e configure-o para usar Git como seu repositório fonte. Adicione ‘git pull’ como passo de construção para garantir que você está sempre com o código mais recente.
commands# Na interface do Jenkins, crie um novo Job
# Configure o repositório Git para 'https://github.com/usuario/nome-do-repositorio.git'Adicionando Build Steps no Jenkins
Adicione passos ao pipeline para compilar e testar sua aplicação Apex. Utilize o seguinte comando para realizar a implantação em um ambiente de teste após os testes serem aprovados.
commands# Executando testes e implantando no Salesforce
sfdx force:source:push
sfdx force:apex:test:run --resultformat human --wait 10Configuração de Webhook no GitHub
Para que o Jenkins seja notificado sempre que um novo commit for enviado ao repositório, configure um Webhook no GitHub que envie um payload para o Jenkins quando um push for realizado.
commands# Em seu repositório GitHub, vá para Configurações > Webhooks > Adicionar webhook
# Preencha com a URL do Jenkins e selecione 'Just the push event'.Executando o Pipeline
Agora que tudo está configurado, faça um commit no seu repositório e veja o Jenkins iniciar automaticamente o processo de build e teste, seguindo as etapas definidas. Confira os logs e verifique se os testes passaram com sucesso.
commands# Adicionando e commitando suas alterações
git add .
git commit -m 'Adicionando HelloWorldController e testes'
git push origin main
Conclusão
Neste tutorial, você aprendeu a implementar práticas de DevOps em projetos Apex usando Jenkins e Git. Desde a criação de um repositório até a configuração de um pipeline para integração contínua, cobrimos cada passo necessário para automatizar o processo de desenvolvimento. A adoção de CI/CD não só aumenta a eficiência no desenvolvimento, mas também melhora a qualidade do código entregue. Agora, você pode expandir este fluxo de trabalho, adicionando outras ferramentas e práticas que se adequem às suas necessidades de desenvolvimento e operação.