Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Grouping the sample apps into subfolders cs, cs1, etc. for C# apps, and cpp for C++ apps, is an attempt to even out the sizes of artifacts produced in the Aggregrator pipeline. Each of the cpp, cs, cs1, etc. folders is being built by a separate job agent in the AzDO pipeline, producing a single corresponding artifact. Currently, it appears that artifacts larger than ~5GB have an elevated chance of hitting an "Out of memory" error during artifact download, thus breaking pipeline runs, hence the desire to keep artifacts relatively small. We cannot eliminate the subfolders at the cs, cs1, cpp, etc. level to come up with the following "flat" structure (unless we revert to the old design of AppLifecycle\Activation being one big artifact):

AppLifecycle\Activation\cpp-console-unpackaged
AppLifecycle\Activation\cpp-win32-packaged
....
AppLifecycle\Activation\cs-wpf-packaged

That is because the yaml code in AzDO pipeline is currently using "-" as a stand-in for "\" (because "\" itself is illegal in AzDO pipeline artifact names) so when the yaml code is using the string "AppLifecycle\Activation\cpp-win32-packaged" to construct a file path to locate the .sln file of a sample app, it would not be distinguishable from the string "AppLifecycle-Activation-cpp-win32-packaged", thus breaking the existing code for locating the .sln files.

OTOH, the following folder structure should work:

AppLifecycle\Activation\cpp\console\unpackaged
AppLifecycle\Activation\cpp\win32\packaged
AppLifecycle\Activation\cpp\win32\unpackaged
AppLifecycle\Activation\cpp\winui\packaged
AppLifecycle\Activation\cs\console\unpackaged
AppLifecycle\Activation\cs\winforms\unpackaged
AppLifecycle\Activation\cs\winui\packaged
AppLifecycle\Activation\cs\wpf\unpackaged
AppLifecycle\Activation\cs\wpf\packaged

however it was not adopted because:

  • it's not really much prettier than the current structure,
  • it causes the AzDO pipeline to spawn 9 seperate jobs, one for each leaf folder above, and that is more granular than what we desire (we don't have enough job agents to build all sample apps in parallel even today, so needing more job agents is expected to regress performance).