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

  1. 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 --version

  2. Criaçã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.git

  3. Configuraçã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-project

  4. Criaçã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.cls
    public with sharing class HelloWorldController {
        public String getGreeting() {
            return 'Hello, World!';
        }
    }

  5. 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());
        }
    }

  6. 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'

  7. 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 10

  8. Configuraçã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'.

  9. 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.

Hashtags

#DevOps #Salesforce #Jenkins #Git #IntegraçãoContínua #Apex