Содержание
- 2. Goals Develop understanding of: Build system architecture Differences between AX6.x, and AX7 Current system state Roadmap
- 3. Knowledge Process FAQ - http://fargobuild/processfaq/ AX FAQ - http://fargobuild/axfaq/ SharePoint sites: ESS Ops Build Infrastructure Dev
- 4. Overview
- 5. Build Central Infrastructure
- 6. Lab Footprint
- 7. Source Depot - Overview Server Info: Hosted/Managed by BGIT Connect To - vedbuitfsa06:4020 Actual Server -
- 8. Source Depot - Overview Contd. Proxies Enhance local user experience Both BGIT-managed and private Current proxies
- 9. Source Depot - Overview Contd. Help Sd help Sd help undoc Protections Controls who has permission
- 10. Source Depot - Overview Contd. Maintenance BGIT-managed updates to server/SD instance Remove unused clients Client components
- 11. Source Depot - Branching Purpose:
- 12. Source Depot - Integrations Introduction …it is “to propagate changes happened to a namespace (source namespace)
- 13. Source Depot - Integrations Contd. Revision Versioning at the file level Referenced with ‘#’ Example –
- 14. Source Depot - Integrations Contd. SD Integrate Forward Integrate (FI) versus Reverse Integrate (RI) Full branch
- 15. Source Depot - Integrations Contd. SD Resolve Automatic resolve – sd resolve -as Manual resolve –
- 16. Source Depot - Integrations Contd. AutoIntegrate tool Set of automation wrapping “sd.exe integrate” Custom resolvers MSBuild
- 17. Source Depot - Pack Files Jjpack.exe Primary packing format used in build/gates Supports integrations Does not
- 18. BuildTracker Our Instance: http://daxbuild/BuildTracker BT product site: http://buildtracker BT Lab Solutions DG: btracker
- 19. BuildTracker - Services RR1SQLB02 Database RR1SQLB03 BuildA – Access Management BuildK – Manages BT encryption key
- 20. BuildTracker - Lab Maintenance Build Team Services Project Windows update on clients Reports DB Backups Auto-archive
- 21. BuildTracker - Lab Maintenance Contd. Build Tracker Automation Library Rules framework for enforcing consistent practices in
- 22. BuildTracker - BT.exe Wrapper for common lab maintenance and reporting functions using BuildTracker’s APIs Available functions
- 23. AX7 / Rainier
- 24. The Product CTP Technical Concepts guide on HappyDev
- 25. The Product CTP Technical Concepts guide on HappyDev
- 26. Lab Footprint (AX7)
- 27. Ax7 / Rainier Branches
- 28. CoreXT - Introduction What is it? A layer of rules, processes, features and automation A common
- 29. CoreXT - Our Environment Overview Current version – v3.2 Build.exe to each project node Dependency Based
- 30. CoreXT - Environment Setup Entry point %inetroot%\tools\path1st\myenv.cmd Shortcut by: Open cmd.exe Navigate to enlistment root Run
- 31. CoreXT – Package Management Branch package dependencies defined in a checked-in package manifest On CoreXT startup,
- 32. CoreXT - Externals Public Externals ANY external reference or toolset ANY internal reference or toolset submitted
- 33. CoreXT - Build Build.exe Windows build tool Orchestrator for building/traversing the build graph Our version –
- 34. CoreXT - Build Contd. PASS[0|1|2] PASS0 – Generation of files, copying of static content PASS1 –
- 35. CoreXT - Build Contd. Rainier Build Topics XPPC Proxies/FormAdaptors DBSync Packaging
- 36. CoreXT - MSBuild Current Version – v14.0 Build.exe to MSBuild Handoff \public\ext\tools\msbuild.def inclusion in project makefile
- 37. CoreXT - FxCop Source: All Branches: %inetroot%\public\ext\fxcop\... Runs on: Binplace via %inetroot%\tools\build\buildtypes\fxcop_build.cmd MSBuild project when RunCodeAnalysis=true
- 38. CoreXT - FxCop Contd. Rule Categories SWI/Stock – rules fulfilling QE requirements or shipped with FxCop
- 39. CoreXT - FxCop Contd. Common Problems Missing reference assembly Multi-proc/race condition Deadlock/timeout Custom rule crashes Logs
- 40. CoreXT - Customization Stock CoreXT Most source scripts under \tools\... Makefiles under \public\ext\tools\... As a rule
- 41. CoreXT - Automation CoreXT + BuildTracker Stock automation scripts - %inetroot%\tools\build\automation\... Customized automation scripts - %inetroot%\build\automation\...
- 42. CoreXT - Codereview Wizard based on AutoProcess console that wraps CodeFlow submissions Binaries\Configuration - \build\CodeReview\... Source
- 43. CoreXT - DynCop Home-grown static analysis tool Developed and used initially for CoreXT v3.2 upgrade Develop
- 44. CoreXT – Platform-As-A-Binary Historically, AX has been a monolithic codebase Re-architect product into Platform component and
- 45. CoreXT - Dirs Filtering Framework Mechanism used to partition codebase for initial Platform/Application build separation Uses
- 46. CoreXT - Dirs Filtering Framework Contd. Examples: Build retail –BuildOnly:fnd Build retail –BuildConfig:Platform Build retail –ExcludeTokens:app
- 47. CoreXT - Odds and ends Aliases Maps a command to an alias Example – ‘codereview’ invokes
- 48. Gates
- 49. Gates - Technologies WTT Workflow engine Machine management/maintenance Powershell Log parsing Reporting Queue processor Managed code
- 50. Gates - 50k Feet
- 51. Gates - Submitting
- 52. Gates - “Checkin” Command Usage: checkin Source script: \public\ext\tools\x86\checkin.cmd
- 53. Gates - Checkin Wizard Wizard for submitting to the gates Based on AutoProcess console framework Configuration:
- 54. Gates - Queue Processor Core Orchestrates scheduling of requested check-ins Scheduling dimensions: Machine availability Blocking files
- 55. Gates - Queue Processor Contd. Core Contd. BuildServices branch - %inetroot%\build\wtt_checkin\SetExternalReferences.cmd Log location - %QueueProcessLogDirectory% Execution
- 56. Gates - Queue Processor Contd. Merge Resolution Check Every 15 minutes for branches that have queued,
- 57. Gates - Execution
- 58. Gates - Execution Contd. Primary Machine Maintains checkin state Executes retail build Schedules leg builds and
- 59. Gates - Execution Contd. Legs Build leg Applies change Executes a build Reports result back to
- 60. Gates - Execution Contd. Environment %binFolder% - %inetroot%\build\wtt_checkin %workFolder% - %inetroot%\build\wtt_checkin\work %parm % - Value from
- 61. Gates - Tasks Task Intro Single script under %binFolder% Invoked from WTT job task Format Set
- 62. Gates - Tasks Contd. Primary Machine Preparation Sync Apply Changelist Pre-Checkin Checks Pre-Build Preparation Build Retail-platform
- 63. Gates - Tasks Contd. Adding a task Create a task script Create it under %inetroot%\build\wtt_checkin\ .cmd
- 64. Gates - Fast Build Consists of multiple processes to shorten gate execution time by using “seed”
- 65. Gates - Fast Build Eligibility Eligibility for each process evaluated at the start of the checkin
- 66. Gates - Fast Build Execution Valid seed build if: All churned files themselves qualify for the
- 67. Gates - Fast Build : FastApp Uses regular rolling builds of the platform to skip building
- 68. Gates - Fast Build : NightlyBootstrap Uses nightly build’s DemoData bootstrap instead of building from scratch.
- 69. Gates - Symbol/binary indexing Every gate build indexed to http://symweb Deduplication and filtering of binaries (RemoveDuplicates.exe)
- 70. Gates - Synthetic Checkins Service scheduling regular test checkins to assess the stability of a branch/checkin
- 71. Gates - Reporting / Alerts MBSUSP MBSRPT Email Status Volume Build Breaks Offline Machines Queue Cycle
- 72. Gates - Statistics DB / BuildService Statistics Primary repository of gate execution and configuration data Lives
- 73. Gates - Development Task Source %inetroot%\build\wtt_checkin\... Tools Source %inetroot%\build\ax_tools\... %inetroot%\build\source\... %inetroot%\build\scripts\... WTT Artifacts Checkin jobs -
- 74. Gates - Development Contd. Maintenance and core tools BuildServices branch %inetroot%\build\wtt_checkin\MachineConfiguration\... %inetroot%\build\wtt_checkin\ Test environment Run locally
- 75. Gates - Monitoring / Analysis Gated Checkin Monitor (GCM) Gate/build monitoring dashboard Quick access to common
- 76. BuildTracker Managed Builds
- 77. BuildTracker Builds - Official Builds Purpose Produce a ship-quality build All infrastructure in place to be
- 78. BuildTracker Builds - Buddy Builds Purpose Provide engineers with a private build containing their pending changes
- 79. BuildTracker Builds - Buddy Build Wizard Binaries/Configuration - %inetroot%\build\BBCheckinWizard Source locations Source control grid (first screen):
- 80. BuildTracker Builds - Rolling Builds Purpose Provide faster build/validation cycle than nightly official builds Cadence RainFND
- 81. BuildTracker Builds - Jobs
- 82. BuildTracker Builds – Master Builds Collection of child jobs to execute as a single job instance
- 83. CodeSign Authenticode versus Strong Name Signing process Delay signing Authsign.exe Certificates Non-standard formats/processes CSPKG APPX ClickOnce/VSTO
- 84. Localization LSBuild Command line build tool to create localized product files Uses English version of file
- 85. Localization - Contd. PseudoLoc Simulated localized content Intended to catch localization problems as early as possible
- 86. QE / LMC Quality Essentials (QE) Set of validations focused on ensuring overall release quality Regulatory/legal
- 87. Post-ship activities Local and long-term backup Source code archive Symbol index/archive
- 88. Visual Studio Online (VSO) What is VSO? Our instance: http://msdyneng.visualstudio.com VSO-hosted Source control via Git Work
- 89. In-Market
- 90. AX6.x Product AX 2012 Technet site AX 2012 Architecture AX 2012 MSDN Developer site
- 91. AX6.x Product Contd. AX32.exe – Win32 client AX32Serv.exe - Server component running as a Windows Service
- 92. Lab Footprint (In-Market)
- 93. In-Market Branches
- 94. Servicing Concepts Dependency toolset Hotfix Binary vs. Application Rollup Cumulative Update (CU)
- 95. CoreXT - Our Environment Overview Current version – v1 Build.exe to each project node SYNCHRONIZE_BLOCK, SYNCHRONIZE_DRAIN
- 96. CoreXT - MSBuild Current Version – v4.0 Build.exe to MSBuild Handoff Automatically included in all project
- 97. CoreXT - Build Build.exe Windows build tool Orchestrator for building/traversing the build graph Our version –
- 98. CoreXT - Build Contd. PASS[0|1|2] PASS0 – Generation of files, copying of static content PASS1 –
- 99. CoreXT - mydirs If a “mydirs” file is present in a directory, build.exe will use it
- 100. CoreXT - Build types
- 101. CoreXT - Layer Build Builds the application component for a specific workload on a specific layer
- 102. CoreXT - Layer Build Contd.
- 103. CoreXT - Layer Build Contd.
- 104. CoreXT - Layer Build Contd.
- 105. CoreXT - Layer Build Contd.
- 106. CoreXT - VCSDef MorphX version control settings defined in dynamically-generated file %inetroot%\Definition\VCSDef.xml Defines source/label file locations
- 107. CoreXT - Label Files AX Label (.ald) files edited through the label editor in MorphX. 1..*
- 108. CoreXT – Deploy.cmd Installs the AX components onto a developer’s machine and initializes the developer environment
- 109. Gates
- 110. Gates - Execution
- 111. Gates - FastKernel Uses a pre-build kernel build to seed the gate process and skip the
- 112. Gates - FastApp Uses a pre-build application drop to replace the layer build done prior to
- 113. Gates - SDDump Process used to capture the affected elements of a change Dependency data submitted
- 114. Gates - SDDump Contd. Create scripts to revert/restore non-X++ changes Prepare environment without changes applied Restore
- 115. Gates - Multi-product Check-in Only in DAX6HF Checkin workflow to validate changes to multiple industry solutions
- 116. BuildTracker Managed Builds
- 117. BuildTracker Builds - Rollup Purpose Produce a full kernel + application build to the tip of
- 118. BuildTracker Builds - Application Hotfix Purpose Produce a granular hotfix containing the X++ change fixing a
- 119. BuildTracker Builds - Binary Hotfix Purpose Produce a cumulative build of the kernel and frameworks components
- 120. BuildTracker Builds - Jobs
- 121. UA Build
- 122. UABuild – Overview (Core Concepts) UABuild – UABuild is our documentation build process Content is generated
- 123. UABuild – Core Build Types A GFB (Get For Build) pulls content from a DxStudio project
- 124. UABuild - Core Build Flow
- 125. Daily Activities
- 126. Assessing Official Build State Nightly builds scheduled, ran as expected, kicked off test runs Expected state
- 127. Assessing BuddyBuild State Check on buddy build queue Expected state - majority of the time the
- 128. Assessing Gated Check-in State Check queue length on MBSRPT Expected state - Queue as small as
- 130. Скачать презентацию