Introdução
Neste tutorial, vamos explorar as melhores práticas de Continuous Integration (CI) e Continuous Deployment (CD) especialmente no contexto do Microsoft Dynamics 365 Business Central (BC). Usaremos o Azure DevOps como ferramenta principal de automação de pipelines e o AL Language para desenvolver extensões do Business Central. Você aprenderá a configurar um ambiente de CI/CD que facilitará a integração contínua e a entrega contínua de suas aplicações, permitindo a automação de testes, build e deployment. Esta abordagem não só otimiza o processo de desenvolvimento mas também melhora a colaboração da equipe e a qualidade das entregas, sendo ideal para desenvolvedores que trabalham com o Business Central e desejam modernizar suas práticas de desenvolvimento.
Etapas
Configuração do Azure DevOps
Crie uma conta no Azure DevOps e configure um novo projeto. Acesse a seção ‘Repos’ para criar um repositório Git onde você armazenará o código-fonte das extensões do Business Central. Certifique-se de habilitar as permissões adequadas para os membros da equipe.
commands# Criar um novo projeto
1. Acesse o Azure DevOps.
2. Clique em 'New Project'.
3. Preencha as informações necessárias e clique em 'Create'.
# Configurar repositório Git
1. Navegue até a seção 'Repos'.
2. Clique em 'Files' e depois em 'New Repository'.
3. Siga as instruções para criar um repositório.Criação do Projeto AL no Business Central
Utilize a extensão AL para Visual Studio Code para criar um novo projeto AL. O comando AL irá gerar a estrutura básica do projeto com todos os arquivos necessários, incluindo o arquivo de configuração app.json.
commands# Criar um novo projeto AL
1. Abra o Visual Studio Code.
2. Instale a extensão AL Language caso não tenha feito isso.
3. Pressione Ctrl + Shift + P e digite 'AL: Go!' para iniciar um novo projeto.
4. Escolha um diretório para armazenar o projeto.Configuração do arquivo app.json
No seu projeto AL, edite o arquivo app.json para definir as propriedades do aplicativo, como ID, nome, versão e publisher. Essas informações são essenciais para o deployment no Business Central.
app.json{ "id": "{your-app-id}", "name": "My Business Central App", "publisher": "MyCompany", "version": "1.0.0", "platform": "17.0.0", "application": "{your-app-url}" }
Criação de um Pipeline de CI/CD
Na seção ‘Pipelines’ do Azure DevOps, crie um novo pipeline configurando-o para monitorar o repositório que você criou. Configure o arquivo YAML que descreverá os passos necessários para compilar, testar e publicar seu aplicativo Business Central.
azure-pipelines.ymltrigger: branches: include: - main pool: vmImage: 'windows-latest' steps: - task: ALGo@1 inputs: sourceDirectory: '$(System.DefaultWorkingDirectory)' outputDirectory: '$(System.ArtifactsDirectory)' outputDirectoryForDependencies: '$(System.ArtifactsDirectory)' target: 'Publish' deploymentTarget: 'Dev' bcSubscription: 'MyBCSubscription' workspace: 'MyWorkspace' - publish: '$(System.ArtifactsDirectory)' artifact: drop
Configuração de Testes Automatizados
Utilize a biblioteca Test Toolkit do AL para implementar testes automatizados em seu aplicativo. Esses testes serão executados automaticamente após cada build no CI/CD, aumentando a qualidade do seu código.
ExampleTest.alcodeunit 50100 "MyAppTests" { [TestMethod] procedure TestMyFunction() var result: Boolean; begin result := MyFunction(); Assert.IsTrue(result); end; }
Executando o Pipeline
Inicie o pipeline manualmente ou faça um commit no seu repositório para acionar o pipeline automaticamente. Monitore os logs de build para verificar se todos os passos foram executados com sucesso e se os testes passaram.
commands# Iniciar o pipeline
1. Navegue até a seção 'Pipelines'.
2. Clique no pipeline criado e depois em 'Run pipeline'.
3. Acompanhe o progresso em tempo real.
Conclusão
Neste tutorial, nós abordamos as principais práticas de CI/CD utilizando Azure DevOps para automação do ciclo de vida de desenvolvimento de extensões do Business Central com AL Language. Você aprendeu a configurar seu ambiente, criar um projeto, configurar um pipeline para build e deploy, bem como implementar testes automatizados. Ao adotar essas práticas, a entrega de software se torna mais eficiente, menos propensa a erros e permite uma rápida iteração nas aplicações, beneficiando toda a equipe de desenvolvimento.