Testar e implantar alterações
Objetivos de aprendizagem
- Criar um arquivo manifesto (
package.xml
) que liste os componentes a serem implementados. - Explicar os comandos usados para implantar alterações em sua organização.
- Descrever como acelerar implantações com o Quick Deploy.
Criar o artefato da versão
Agora que terminaram as tarefas de desenvolvimento, Juan e Ella transferem as alterações para um ambiente que compartilham com os demais integrantes da equipe de desenvolvimento. Eles fazem a transição para a fase de compilação de versão para integrar suas alterações em uma sandbox do Developer Pro.
Depois de concluir esses testes, Juan cria o artefato de versão final: um arquivo de manifesto (package.xml
) que lista os componentes a serem implantados na sandbox e em organizações de produção. Você também pode usar um arquivo de manifesto para recuperar componentes. Juan então usa o arquivo de manifesto para fazer testes de aceitação do usuário em uma sandbox completa. Juan e Ella fazem uma verificação final para ter certeza de que tudo está bem. Finalmente, eles planejam e executam a implantação na produção.
Extrair as alterações do repositório
Juan sabe que a fonte da verdade (todas as mudanças desta versão) residem agora em seu repositório GitHub.
- No VS Code, clique no ícone Source Control (Controle de origem) (1).
- Clique no ícone More Actions (Mais ações) (2) e selecione Pull from (Extrair de) (3).
- Selecione origin (origem).
- O repositório contém o novo objeto personalizado, campo personalizado e acionadores. Todas as mudanças de Ella e Juan estão aqui.
Autorizar a Developer Pro Sandbox
- No VS Code, faça login na Developer Pro Sandbox. Selecione SFDX: Authorize an Org (SFDX: Autorizar uma organização).
- Selecione Sandbox para a URL de login (test.salesforce.com).
- Insira um alias para a sandbox, por exemplo,
dev_pro_sandbox
. - Faça login com seu nome de usuário e sua senha da sandbox.
Compilar o artefato da versão
A primeira tarefa de Juan é compilar o artefato da versão para que ele possa implantar as alterações na Developer Pro Sandbox. Juan decide criar um arquivo manifesto, normalmente chamado package.xml
, que lista os componentes de metadados que ele deseja implantar.
- Em uma janela de comando, certifique-se de estar no diretório do projeto Salesforce DX.
- Na linha de comando, visualize a ajuda do comando
project generate manifest
.sf project generate manifest --help
A--help
(--ajuda) informa a Juan o formato do comando. Juan deseja implantar apenas os novos componentes de metadados, então ele determina que precisa do indicador--metadata
. - Execute o comando
project generate manifest
e especifique os componentes a serem implantados, como o novo objeto personalizado Language Course Instructor (Instrutor de curso de idiomas) e as outras alterações em sua lista de alterações:sf project generate manifest --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c --metadata ApexTrigger:LanguageCourseTrigger --metadata ApexClass:TestLanguageCourseTrigger
O comando gera o arquivo de manifesto chamadopackage.xml
no diretório atual. - Teste o arquivo
package.xml
na Developer Pro Sandbox para garantir que ele vai implementar todos os componentes.sf project deploy start --manifest package.xml --target-org dev-pro-sandbox
Vamos fazer uma pausa e observar o arquivo package.xml
. Se quiser, abra o que você acabou de gerar em um editor de texto. O arquivo simplesmente lista os componentes de metadados a serem implementados. Ele não contém o código do Apex real ou a estrutura completa do objeto personalizado. Ao implantar usando esse arquivo de manifesto, o comando de implantação usa os arquivos de origem que encontra atualmente em seu projeto local. Se você executar o comando a partir de uma ramificação do VCS diferente ou alterar os arquivos de origem locais desses componentes, esses arquivos serão implementados. Resumindo: saiba certinho quais são os arquivos de origem reais que você implanta ao usar um arquivo de manifesto.
Você também pode usar um arquivo de manifesto para excluir componentes durante uma implantação. Use o indicador --type
do comando project generate manifest
para gerar um arquivo de manifesto de alterações destrutivas que lista os componentes a serem excluídos. Em seguida, especifique esse arquivo com um dos indicadores de exclusão de project deploy start|validate
, como --post-destructive-changes
.
Testar o artefato de versão na sandbox de teste (parcial)
Juan mais uma vez usa um terminal ou janela de comando para executar um comando da CLI do Salesforce para implantar as alterações na sandbox de teste. Juan implanta suas alterações usando o mesmo comando de antes: project deploy start
.
- Autorize a sandbox parcial.
- Certifique-se de estar no diretório do projeto Salesforce DX.
- Na linha de comando, exiba a ajuda do comando de implantação.
sf project deploy start --help
--help
informa a Juan o formato do comando e quais indicadores incluir, particularmente--manifest
para implantar usando o arquivo de manifestopackage.xml
. - Execute o comando de implantação que imita o que você vai implantar na produção:
sf project deploy start --manifest package.xml --target-org partial-sandbox --test-level RunSpecifiedTests --tests TestLanguageCourseTrigger
- Se necessário, execute seus testes de IU, como testes de selênio, por exemplo.
- Abra a sandbox:
sf org open --target-org partial-sandbox
- Realize testes de aceitação do usuário.
Nesta fase do processo, Juan se preocupa apenas com os testes relacionados ao aplicativo ou com as alterações que estão sendo implantadas. Ele executa apenas os testes para o código que está no artefato de versão.
Se o teste de Juan for aprovado, ele passa para a fase de teste de versão, onde realiza testes de regressão na sandbox de teste.
Testar o artefato de versão na sandbox de preparação (completa)
Se Juan não fizer alterações com base nos testes de integração, a próxima etapa será preparar as alterações em uma sandbox completa. Juan segue um processo semelhante para implantar as alterações na sandbox completa. Esta fase inclui testes de regressão e imita como Juan vai liberar as alterações para produção.
Como Juan não encontra nenhum erro durante a fase de teste, ele usa o mesmo arquivo package.xml
e garante a implantação a partir da mesma ramificação de quando testou. Se encontrasse erros durante a fase de teste, ele os corrigiria e tentaria novamente.
Primeiro, ele executa uma análise de regressão fazendo uma implantação validada na organização que executa todos os testes. Uma implantação validada permite verificar os resultados dos testes que seriam executados em uma implantação, mas não confirma nenhuma alteração. A validação também garante que você não esqueceu um componente de metadados do qual outro componente depende e que não possui metadados inválidos. Depois de executar todos os testes de regressão, ele executa uma implantação rápida para imitar exatamente as etapas que executará para implantar na produção. Ele faz isso tudo usando a Salesforce CLI.
Ao validar os componentes com sucesso no ambiente de teste, Juan tem uma janela de manutenção mais curta que bloqueia o acesso do usuário ao sistema quando as personalizações são implantadas na produção.
- Autorize a sandbox completa.
- Execute todos os testes locais (regressão) para validar a implantação sem salvar os componentes na organização de destino.
sf project deploy validate --manifest package.xml --target-org full-sandbox --test-level RunLocalTests
Este comando retorna um ID de trabalho que você precisará referenciar na implantação rápida. Uma validação bem-sucedida significa que todos os testes do Apex foram aprovados e que cobrem pelo menos 75% do código que está sendo implantado. - Em seguida, conclua a implantação rápida na sandbox completa usando o ID de trabalho retornado na etapa anterior. Essa implantação rápida imita o que acontece posteriormente na produção.
sf project deploy quick --job-id <jobID> --target-org full-sandbox
Liberar para produção
Juan e sua equipe estão na reta final. Agora que todos os testes foram aprovados na sandbox completa, eles estão prontos para implantar na produção. A equipe de vendas está muito entusiasmada em ver sua visão se tornar realidade.
Juan verifica a lista de execução de implantação e constata que não tem nenhuma tarefa de pré-implantação para concluir. Está tudo certo. Depois de executar a implantação de validação, ele terá 10 dias para realizar a implantação rápida na produção, desde que não realize outra implantação ou faça grandes alterações na organização. Juan configura a implantação de validação para a organização de produção para garantir que não haja problemas causados por diferenças com a sandbox de preparação. Juan executa a implantação de validação durante o horário comercial. Portanto, se algo der errado, ele estará disponível para solucionar o problema. Quando a validação for bem-sucedida, e para minimizar o impacto no cliente, ele implantará na produção naquela noite usando a implantação rápida.
- Autorize a organização de produção.
- Primeiro, valide e configure a implantação rápida executando
project deploy activate
:sf project deploy validate --manifest package.xml --target-org production-org --test-level RunLocalTests
Este comando retorna um ID de trabalho que você precisará referenciar na implantação rápida. - Execute a implantação rápida:
sf project deploy quick --job-id <jobID> --target-org production-org
- Abra a organização de produção para conferir que suas alterações estão lá.
Executar tarefas pós-implantação listadas na lista de execuções de implantação
Juan analisa novamente a lista de execução de implantação para ver quais tarefas pós-implantação devem ser executadas na organização de produção.
Fase (Pré ou Pós) | Entidade/Componente | Notas | Etapas |
---|---|---|---|
Pré-implantação | N/D | Nenhuma tarefa necessária | N/D |
Pós-implantação | Perfil de vendas | Atualize as permissões para que a equipe de vendas possa visualizar objetos e campos personalizados. | Em Setup (Configuração), edite o perfil Sales team (Equipe de vendas). Forneça o acesso de leitura Read para instrutores de cursos de idiomas. |
Mais um sucesso na distribuição!
Calvin faz uma rápida verificação de integridade na organização de produção. Ele adiciona um instrutor a um dos cursos e valida que o email de notificação chega em sua caixa de entrada.
Com todas as alterações refletidas no sistema de controle de origem, a equipe pode fornecer a Calvin uma lista definitiva de alterações para documentar nas notas de lançamento.
Calvin diz à equipe de vendas que o novo recurso de notificação está pronto para uso. Ele parabeniza Ella e Juan pela implementação bem-sucedida de um recurso importante que ajudará a equipe de vendas da Zephyrus a se manter informada com as informações mais recentes do curso. Ele está satisfeito com o fato de as alterações agora serem armazenadas em um repositório e vê os benefícios que o repositório oferece à medida que a equipe trabalha mais.
Recursos
- Blog do desenvolvedor: Mantenha sua organização em plena forma com as melhores práticas de implantação
- Guia do desenvolvedor: Guia de configuração da CLI do Salesforce
- Guia do desenvolvedor: Guia do desenvolvedor do Salesforce DX
- Guia do desenvolvedor: Executar testes em uma implantação (Guia do desenvolvedor da API de metadados)