eng/mgmt/ci.buildtools.targets (188 lines of code) (raw):

<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <LocalSToSNugPkgCacheDir>$(USERPROFILE)\.nuget\packages\microsoft.internal.swaggertosdk.tools</LocalSToSNugPkgCacheDir> <LocalKVNugPkgCacheDir>$(USERPROFILE)\.nuget\packages\microsoft.azure.keyvault;$(USERPROFILE)\.nuget\packages\microsoft.azure.keyvault.webkey</LocalKVNugPkgCacheDir> <PublishNet461Dir>$(RepoTaskBinaryOutputDir)\net461</PublishNet461Dir> <PublishNetStd20Dir>$(RepoTaskBinaryOutputDir)\netstandard2.0</PublishNetStd20Dir> <PublishLinuxNetStd20Dir>$(RepoTaskBinaryOutputDir)\netstandard2.0\linux</PublishLinuxNetStd20Dir> </PropertyGroup> <ItemGroup> <LocalNugPkgsCleanup Include="$(USERPROFILE)\.nuget\packages\*keyvault*\**\" /> </ItemGroup> <PropertyGroup> <CTPTargets> CleanTasksProjects; </CTPTargets> </PropertyGroup> <PropertyGroup> <CleanProjectDependsOn> CleanTasksProjects; </CleanProjectDependsOn> <RestoreProjectDependsOn> RestoreTasksProjects; </RestoreProjectDependsOn> <BuildProjectDependsOn> $(RestoreProjectDependsOn); BuildTasksProjects; </BuildProjectDependsOn> <BuildToolsPackageDependsOn> $(RestoreProjectDependsOn); PublishTasksProjects; BuildToolsPackageTarget </BuildToolsPackageDependsOn> <PublishNugetPackageDependsOn> $(BuildToolsPackageDependsOn); PublishNugetPackageLocally </PublishNugetPackageDependsOn> </PropertyGroup> <Target Name="CleanTasksProjects"> <Message Text="Cleaning Projects ........"/> <Message Text="%(ProjectsToBuild.Identity)" Condition="'$(DebugTraceEnv)' == 'true' "/> <MSBuild Targets="Clean" Projects="@(ProjectsToBuild);@(NugetPkgProjects)" Properties="Configuration=$(Configuration)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" /> <ItemGroup> <!-- <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin\Microsoft.Internal.AznetSdk.CITools" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin\MS.Az.Mgmt.CI.BuildTasks" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin\MS.Az.Mgmt.CI.Common" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin\Tests.CI.Common" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin\Tests.CI.BuildTasks" /> --> <ArtiDirs Include="$(RepositoryRoot)\artifacts\obj" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\bin" /> <ArtiDirs Include="$(RepositoryRoot)\artifacts\packages" /> </ItemGroup> <Message Text = "Artifacts dirs...... @(ArtiDirs)" /> <!-- Need to check all conditions due to https://github.com/Microsoft/msbuild/issues/4105 --> <RemoveDir Condition="'$(RepoNugetRestoreDir)' != '' OR '$(RepoNugetRestoreDir)' != '\' OR '$(RepoNugetRestoreDir)' != '/' " Directories="$(RepoNugetRestoreDir)" /> <RemoveDir Condition=" '@(ArtiDirs)' != '' OR '@(ArtiDirs)' != '\' OR '@(ArtiDirs)' != '/' " Directories="@(ArtiDirs)" /> <RemoveDir Condition="'$(CINugPkgPublish_NetStd20Dir)' != '' OR '$(CINugPkgPublish_NetStd20Dir)' != '\' OR '$(CINugPkgPublish_NetStd20Dir)' != '/' " Directories="$(CINugPkgPublish_NetStd20Dir)" /> <RemoveDir Condition="'$(CINugPkgPublish_Net461Dir)' != '' OR '$(CINugPkgPublish_Net461Dir)' != '\' OR '$(CINugPkgPublish_Net461Dir)' != '/' " Directories="$(CINugPkgPublish_Net461Dir)" /> </Target> <Target Name="RestoreTasksProjects"> <Message Text="Restoring Projects ........"/> <Message Text="%(ProjectsToBuild.Identity)" Condition="'$(DebugTraceEnv)' == 'true' "/> <MSBuild Targets="Restore" Projects="@(ProjectsToBuild)" Properties="Configuration=$(Configuration);RestorePackagesPath=$(RepoNugetRestoreDir);RepositoryPath=$(RepoNugetRestoreDir)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" /> </Target> <Target Name="BuildTasksProjects" DependsOnTargets="PublishNet461"> <Message Text="Building Projects........." /> <Message Text="@(ProjectsToBuild.Identity)" Condition=" '$(DebugTraceEnv)' == 'true' " /> <MSBuild Targets="Build" Projects="@(ProjectsToBuild)" Properties="Configuration=$(Configuration)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" /> </Target> <Target Name="PublishNet461"> <Message Text="Publishingnet461....." Importance="High" /> <MSBuild Targets="Publish" Projects="@(ProjectsToPublish)" Properties="Configuration=$(Configuration);TargetFramework=net461;PublishDir=$(CINugPkgPublish_Net461Dir)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" /> <PropertyGroup> <PlatWin32DirPath>$(CINugPkgPublish_Net461Dir)\lib\win32\x64</PlatWin32DirPath> </PropertyGroup> <ItemGroup> <Net461NativeFilesToBeCopied Include="$(PlatWin32DirPath)\*.*" /> </ItemGroup> <Message Text="Copying Platform specific files...." Importance="High" /> <PropertyGroup> <destDir>$(PlatWin32DirPath)\..\..\..\</destDir> </PropertyGroup> <Message Text="Destination Dir.... $(destDir)" Importance="High" /> <Copy SourceFiles="@(Net461NativeFilesToBeCopied)" DestinationFolder="$(PlatWin32DirPath)\..\..\..\" SkipUnchangedFiles="true" /> </Target> <Target Name="CleanToolsPackage"> <ItemGroup> <LocalNugPkgs Include="$(RepoNugetFeedDir)\Microsoft.Internal.*.nupkg;$(RepoNugetFeedDir)\Microsoft.Internal.*.zip" /> <LocalNugPkgs Include="$(PackageOutputPath)\**\Microsoft.Internal.*.nupkg;$(PackageOutputPath)\**\Microsoft.Internal.*.zip" /> </ItemGroup> <Message Text="Files to delete ==== @(LocalNugPkgs)" /> <Delete Condition=" '@(LocalNugPkgs)' != '' OR '@(LocalNugPkgs)' != '\' " Files="@(LocalNugPkgs)" /> </Target> <Target Name="BuildCIPackageTarget" DependsOnTargets="CleanToolsPackage" Condition=" '$(Scope)' == 'ci' OR '$(Scope)' != 'CI' "> <PropertyGroup> <CINugPkgProj>$(CINugPkgSrcDir)\Microsoft.Internal.AzNetSdk.CITools.csproj</CINugPkgProj> <CINuspecFile>$(CINugPkgSrcDir)\nuspec\Microsoft.Internal.AzNetSdk.CITools.nuspec</CINuspecFile> </PropertyGroup> <Message Condition=" Exists($(CINugPkgProj)) " Text="Projects to be build ======== $(CINugPkgProj)" /> <Error Condition=" !Exists($(CINuspecFile)) " Text="Projects $(CINuspecFile) do not exists" /> <MSBuild Targets="Restore" Projects="$(CINugPkgProj)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" Condition=" '$(SkipRestore)' != 'true' " /> <MSBuild Targets="Build" Projects="$(CINugPkgProj)" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" Condition=" '$(SkipBuild)' != 'true' " /> <MSBuild Targets="Pack" Projects="$(CINugPkgProj)" Properties="Configuration=$(Configuration); NuspecFile=$(CINuspecFile); VisualStudioVersion=$(VisualStudioVersion); PackageOutputPath=$(PackageOutputPath); IncludeBuildOutput=false; NoPackageAnalysis=true; IncludeSymbols=false; NoBuild=true;" BuildInParallel="$(BuildInParallel)" ContinueOnError="ErrorAndStop" Condition=" '$(SkipPack)' != 'true' " /> </Target> <Target Name="BuildToolsPackageTarget" DependsOnTargets="BuildCIPackageTarget"> <Message Text="Done Building Package" /> </Target> <Target Name="PublishNugetPackageLocally"> <PropertyGroup> <CINugetPackageDeployDirPath>$(CINugPkgDeploySdkNetDirPath)\tools\LocalNugetFeed</CINugetPackageDeployDirPath> <CINugetPkgSourceDirPath>$(RepoToolsDir)\LocalNugetFeed</CINugetPkgSourceDirPath> <CINugetPkgSourceFilePath>$(CINugetPkgSourceDirPath)\Microsoft.Internal.NetSdkBuild.Mgmt.Tools.0.10.0.nupkg</CINugetPkgSourceFilePath> </PropertyGroup> <Copy Condition=" Exists('$(CINugetPkgSourceFilePath)') AND Exists('$(CINugetPackageDeployDirPath)') AND '$(Scope)' == 'ci' " SourceFiles="$(CINugetPkgSourceFilePath)" DestinationFolder="$(CINugetPkgSourceDirPath)" SkipUnchangedFiles="true" /> </Target> <Target Name="PublishTasksProjects" DependsOnTargets="PublishNet461"> <PropertyGroup> <NugPkgPublishDir Condition=" '$(NugPkgPublishDir)' == '' AND ( '$(Scope)' == 'ci' OR '$(Scope)' == 'CI' ) ">$(CINugPkgPublish_NetStd20Dir)</NugPkgPublishDir> </PropertyGroup> <Message Text="Publishing Projects........." /> <Message Text="@(ProjectsToPublish.Identity)" Condition=" '$(DebugTraceEnv)' == 'true' " /> <Exec Command="dotnet publish %(ProjectsToPublish.Identity) -f netstandard2.0 -o $(NugPkgPublishDir) -r win10-x64" /> </Target> <Target Name="myenv"> <Message Text="CurrentDir=========$(CurrentDir)" /> <Message Text="RepoRoot=========$(RepoRoot)" /> <Message Text="RepoSrcDir=========$(RepoSrcDir)" /> <Message Text="RepoTaskBinaryOutputDir ....$(RepoTaskBinaryOutputDir)" /> <Message Text="OutputPath ....$(OutputPath)" /> <Message Text="IntermediateOutputPath .... $(IntermediateOutputPath)" /> <Message Text="PackageOutputPath .... $(PackageOutputPath)" /> <Message Text=" "/> <Message Text="RepoCISrcDir=========$(RepoCISrcDir)" /> <Message Text="RepoCICommonSrcDir=========$(RepoCICommonSrcDir)" /> <Message Text="RepoCIBuildTaskDir=========$(RepoCIBuildTaskDir)" /> <Message Text="CINugPkgSrcDir=========$(CINugPkgSrcDir)" /> <Message Text="CIBuildOutputDir=========$(CIBuildOutputDir)" /> <Message Text="CINugPkgPublish_NetStd20Dir=========$(CINugPkgPublish_NetStd20Dir)" /> <Message Text="CINugPkgPublish_Net461Dir=========$(CINugPkgPublish_Net461Dir)" /> <Message Text="CINugPkgDeployLocalRootDirPath=========$(CINugPkgDeployLocalRootDirPath)" /> <Message Text="CINugPkgDeploySdkNetDirPath=========$(CINugPkgDeploySdkNetDirPath)" /> </Target> <Target Name="DisplayProjData"> <Message Text="TestDataProjects=========%(TestDataProjects.Identity)" /> <Message Text="BuildTaskTestProjects=========%(BuildTaskTestProjects.Identity)" /> <Message Text="SwaggerToSdkTestProjects=========%(SwaggerToSdkTestProjects.Identity)" /> <Message Text="BuildTasksProjects=========%(BuildTasksProjects.Identity)" /> <Message Text="CommonTestProjects=========%(CommonTestProjects.Identity)" /> <Message Text="CommonTaskProjects=========%(CommonTaskProjects.Identity)" /> <Message Text="SwaggerToSdkProjects=========%(SwaggerToSdkProjects.Identity)" /> <Message Text="ProjectsToBuild=========@(ProjectsToBuild)" /> </Target> </Project>