ariste.info
  • MSDyn365 & Azure DevOps ALM
  • Get my book!
  • ISV License Generator
  • About me
    • About me
    • Subscribe
    • Contact
  • Logo
  • LinkedIn

Unified experience ALM

  • Welcome to the new ALM guide
    • Introduction
    • Prerequisites
  • Create and prepare Azure DevOps organization and project
    • Create an Azure DevOps organization
    • Create an Azure DevOps project
    • Enable TFVC projects in Azure DevOps
    • Add CI/CD agents with an Azure subscription
  • Unified development environment
    • What are unified developer environments?
    • Transition to a capacity-based model
    • Deploying a unified developer environment using PowerShell
    • Deploy an UDE environment from PPAC
    • Upgrade version in a Unified Development Environment
    • Useful links
  • Using Visual Studio
    • Connect Visual Studio to your UDE
    • Deploy code to a Unified Development Environment
  • Pipelines
    • What’s new in the pipelines?

Legacy Guide

  • Welcome
    • Welcome!
  • Dynamics 365 for Finance & Operations & Azure DevOps
    • Intro
    • Package and model planning
    • Azure DevOps
    • First steps
    • The build server
    • Visual Studio
    • Some advice
    • Branching strategies
  • Azure Pipelines
    • Builds
    • Continuous integration
    • Gated check-ins
    • Set up the new Azure DevOps tasks for Packaging and Model Versioning
  • Azure hosted build for Dynamics 365 Finance & SCM
    • Intro
    • Azure agents
    • How does it work?
    • What do I need?
    • Azure DevOps artifacts
    • Prepare Azure DevOps
    • Configure pipeline
    • Update for version 10.0.18 and greater
  • Azure DevTest Labs powered builds
    • Intro
    • Azure DevTest Labs
    • Getting and preparing the VHD
    • Create a DevTest Labs account
    • Creating the VM
    • Preparing the VM
    • Create a new image
    • Azure DevOps pipelines
    • Run the build
    • Times
    • Show me the money
    • Some final remarks
  • Add and build .NET projects
    • Intro
    • Build .NET in your pipeline
    • Add a C# project to FnO
    • Build pipelinebui
    • Things I don’t like/understand/need to investigate
  • Release Pipelines
    • Intro
    • Setting up Release Pipeline in Azure DevOps for Dynamics 365 for Finance and Operations
    • AAD app creation
    • Create the release pipeline in DevOps
    • Creating the LCS connection
    • New Azure DevOps release tasks: MSAL authentication and ADAL deprecation
  • Automation
    • Update VMs using pipelines and d365fo.tools
    • Builds
    • Releases
    • But I like to add some human touch to it
    • Extra bonus
    • Update a variable in a release
  • LCS DB API
    • Call the LCS Database Movement API from your Azure DevOps Pipelines
    • Automating Prod to Dev DB copies
    • Restore a data package with Azure DevOps Pipelines
  • Secure your Azure Pipelines with Azure Key Vault
    • Azure Key Vault
    • Securing your Azure DevOps Pipelines
View Categories
  • ariste.info
  • Dynamics 365 F&O Dev ALM guide
  • Legacy Guide
  • Azure DevTest Labs powered builds
  • Azure DevOps pipelines

Azure DevOps pipelines

Ya estamos listos para configurar nuestra pipeline en Azure DevOps. Esta pipeline va a consistir de tres pasos: creación de la VM, build, y borrado de la VM:

Azure DevOps pipelines

Primero de todo comprobaremos que nuestra pipeline se ejecuta en Azure (Azure Pipelines):

DevTest Labs Azure Pipelines
DevTest Labs Azure Pipelines

Los pasos de crear y borrar se ejecutarán en una pipeline de Azure. El de build se ejecutará en el pool DevTestLabs que hemos creado, o el nombre que le hayáis dado al configurar el artefacto en DevTest Labs o el script en la VM.

Crear VM en Azure DevTest Labs #

Creamos una nueva pipeline y elegimos “Use the classic editor”. Nos aseguramos de que hemos seleccionado TFVC como origen y hacemos clic en “Continue” y “Empty job”. Añadimos una nueva tarea a la pipeline y buscamos “Azure DevTest Labs Create VM”. Sólo tenemos que rellenar la información necesaria con los parámetros de nuestra suscripción, lab, etc.

Create VM Azure DevTest Labs
Crear VM en Azure DevTest Labs

Recordad que este paso tiene que ejecutarse en una pipeline de Azure.

Build #

Este es muy fácil. Exportamos una build y la importamos.

Este paso tiene que ejecutarse en vuestro pool:

Runs on self-hosted pool
Se ejecuta en el pool autohospedado

Opcional: usar SelectiveSync (no recomendado, ver siguiente apartado) #

Podéis sustituir la tarea Database Sync por un script de PowerShell que solo sincroniza las tablas de vuestros modelos:

SelectiveSync.ps1
SelectiveSync.ps1

¡Muchas gracias a Joris por el consejo!

Opcional: usa las d365fo.tools para sincronizar tus paquetes/modelos #

Esta opcion es mejor que usar SelectiveSync. Puedes sincronizar sólo tus paquetes o modelos y ganar algo de tiempo. Este comando usa sync.exe como Visual Studio y debería ser mejor que usar SelectiveSync.

Añadimos una nueva tarea de PowerShell, seleccionamos Inline Script y este es el comando:

Invoke-D365DbSyncModule -Module "Module1", "Module2" -ShowOriginalProgress -Verbose

Opcional: usa las d365fo.tools para publicar los reports de SSRS #

Si quieres añadir el paso de desplegar los reports en tu pipeline puedes ahorrar un poco de tiempo más usando las d365fo.tools y desplegando sólo los reports de tus modelos como hemos hecho con la sincronización de la DB.

Ejecutaremos esto en una nueva task de PowerShell:

Publish-D365SsrsReport -Module YOUR_MODULE -ReportName *

Borrar VM de Azure DevTest Labs #

Es muy parecido al primer paso de crear, completamos los campos de suscripción, labs y VM y listo:

Delete VM
Borrar VM

Y este paso, igual que el de crear, se ejecutan en el pool de Azure.

Dependencias y condiciones #

Cuando tengamos los 3 pasos configurados tenemos que añadir unas dependencias y condiciones a algunos de ellos. Por ejemplo, asegurarnos que el paso de borrado de la VM solo se ejecuta cuando falle el paso de build, pero que no lo haga cuando falle el de creación.

Build #

El paso de build depende del de crear VM, y sólo debería ejecutarse si el paso previo ha terminado bien:

Build step dependencies and conditions
Dependencias y condiciones del paso de build

Borrar VM #

El paso de borrado depende de los anteriores y sólo debe ejecutarse si el de creación termian bien. Si falla el primero no hay que borrar nada:

Dependencies and conditions on delete VM step
Dependencias y condiciones del paso de borrado

Esta es la condición personalizada que usaremos:

and(always(), eq(dependencies.Job_1.status, 'Succeeded'))

Si necesitáis saber cómo se llama el primer paso de vuestra pipeline, exportadla a YAML y lo encontraréis ahí:

Export pipeline to YAML
Exportar pipeline a YAML
Job name on YAML
Nombre del Job en el YAML

Si este paso fallase al ejecutar la build, no borréis la VM aun, primero cambiad el nombre de la VM en el paso de borrado, guardad la pipeline, y luego usad el desplegable para seleccionar la que queréis borrar.

Subscribe! #

Receive an email when a new post is published
What are your Feelings
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can I help?

How can I help?

Create a new imageRun the build

2 Comments

  1. Dax 2 years ago Reply

    I have installed the Dev.tools in build server and try run the Deploy reports to sepcific model but its failed, also could you please help with how i can use deploy repots script Publish-D365SsrsReport -Module YOUR_MODULE in my pipeline.

    PS C:\windows\system32> Publish-D365SsrsReport -Module XXXXXXXXXXXXXX
    Microsoft.Dynamics.AX.AosConfig.AzureConfig.bindir: K:\AosService\PackagesLocalDirectory
    Module: XXXXXXXXXXX
    ReportName: *

    Getting the protocol and port …
    Protocol: http://; Port: 80

    Reporting Servers: 127.0.0.1
    Testing: http://127.0.0.1:80/ReportServer …
    Checking status of Report Server URL: http://127.0.0.1:80/ReportServer
    Success! Status check of Report Server URL: http://127.0.0.1:80/ReportServer
    Testing reporting services completed.

    Start deploying reports …
    Publish-AXReport : An error occurred while retrieving module with module name pattern XXXXXXXXXXXX
    At K:\AosService\PackagesLocalDirectory\Plugins\AxReportVmRoleStartupTask\Reporting.psm1:504 char:9
    + Publish-AXReport -MaxDegreeOfParallelism 1 -ErrorAction Conti …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : OpenError: (:) [Publish-AXReport], DirectoryNotFoundException
    + FullyQualifiedErrorId : An error occurred while retrieving module with module name pattern BrunswickGlobalTemplate,Microsoft.D
    ynamics.AX.Framework.Management.Reports.PublishReportCommand

    0.6093814 Seconds.
    [14:10:09][Publish-D365SsrsReport] Something went wrong while deploying the SSRS Report(s) | Errors occured during report deployment.
    WARNING: [14:10:09][Publish-D365SsrsReport] Stopping because of errors

    could you help how build script on deploy reports in pipeline ? $(DynamicsSDK)\DeploySSRSReports.ps1

    • Adrià Ariste Santacreu Post Author 2 years ago Reply

      Check if the SSRS service is running, and also that the module names are the correct ones.

Write A Comment Cancel Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Table of Contents
  • Crear VM en Azure DevTest Labs
  • Build
    • Opcional: usar SelectiveSync (no recomendado, ver siguiente apartado)
    • Opcional: usa las d365fo.tools para sincronizar tus paquetes/modelos
    • Opcional: usa las d365fo.tools para publicar los reports de SSRS
  • Borrar VM de Azure DevTest Labs
  • Dependencias y condiciones
    • Build
    • Borrar VM
  • Dynamics 365 Community
  • Subscribe!
  • Microsoft MVP
  • LinkedIn
  • Privacy Policy
  • Contact
  • About me

© 2024 ariste.info. Designed by CazaPelusas.

Top

    Type above and press Enter to search. Press Esc to cancel.