public static BuildModel CreateModelFromItems( ITaskItem[] artifacts, string buildId, string[] BuildProperties, string repoUri, string repoBranch, string repoCommit, bool isStableBuild, string publishingVersion, TaskLoggingHelper log) { if (artifacts == null) { throw new ArgumentNullException(nameof(artifacts)); } var blobArtifacts = new List <BlobArtifactModel>(); var packageArtifacts = new List <PackageArtifactModel>(); foreach (var artifact in artifacts) { if (string.Equals(artifact.GetMetadata("ExcludeFromManifest"), "true", StringComparison.OrdinalIgnoreCase)) { continue; } var isSymbolsPackage = artifact.ItemSpec.EndsWith(".symbols.nupkg", StringComparison.OrdinalIgnoreCase) || artifact.ItemSpec.EndsWith(".snupkg", StringComparison.OrdinalIgnoreCase); if (artifact.ItemSpec.EndsWith(".nupkg", StringComparison.OrdinalIgnoreCase) && !isSymbolsPackage) { packageArtifacts.Add(BuildManifestUtil.CreatePackageArtifactModel(artifact)); } else { if (isSymbolsPackage) { string fileName = Path.GetFileName(artifact.ItemSpec); artifact.SetMetadata("RelativeBlobPath", $"{BuildManifestUtil.AssetsVirtualDir}symbols/{fileName}"); } blobArtifacts.Add(BuildManifestUtil.CreateBlobArtifactModel(artifact)); } } var buildModel = BuildManifestUtil.CreateModel( blobArtifacts, packageArtifacts, buildId, BuildProperties, repoUri, repoBranch, repoCommit, isStableBuild, publishingVersion, log); return(buildModel); }
public static BuildModel CreateModelFromItems( ITaskItem[] artifacts, ITaskItem[] itemsToSign, ITaskItem[] strongNameSignInfo, ITaskItem[] fileSignInfo, ITaskItem[] fileExtensionSignInfo, ITaskItem[] certificatesSignInfo, string buildId, string[] manifestBuildData, string repoUri, string repoBranch, string repoCommit, bool isStableBuild, PublishingInfraVersion publishingVersion, bool isReleaseOnlyPackageVersion, TaskLoggingHelper log) { if (artifacts == null) { throw new ArgumentNullException(nameof(artifacts)); } var blobArtifacts = new List <BlobArtifactModel>(); var packageArtifacts = new List <PackageArtifactModel>(); foreach (var artifact in artifacts) { if (string.Equals(artifact.GetMetadata("ExcludeFromManifest"), "true", StringComparison.OrdinalIgnoreCase)) { continue; } var isSymbolsPackage = artifact.ItemSpec.EndsWith(".symbols.nupkg", StringComparison.OrdinalIgnoreCase) || artifact.ItemSpec.EndsWith(".snupkg", StringComparison.OrdinalIgnoreCase); if (artifact.ItemSpec.EndsWith(".nupkg", StringComparison.OrdinalIgnoreCase) && !isSymbolsPackage) { packageArtifacts.Add(BuildManifestUtil.CreatePackageArtifactModel(artifact)); } else { if (isSymbolsPackage) { string fileName = Path.GetFileName(artifact.ItemSpec); artifact.SetMetadata("RelativeBlobPath", $"{BuildManifestUtil.AssetsVirtualDir}symbols/{fileName}"); } blobArtifacts.Add(BuildManifestUtil.CreateBlobArtifactModel(artifact, log)); } } var signingInfoModel = CreateSigningInformationModelFromItems( itemsToSign, strongNameSignInfo, fileSignInfo, fileExtensionSignInfo, certificatesSignInfo, blobArtifacts, packageArtifacts, log); var buildModel = CreateModel( blobArtifacts, packageArtifacts, buildId, manifestBuildData, repoUri, repoBranch, repoCommit, isStableBuild, publishingVersion, isReleaseOnlyPackageVersion, log, signingInformationModel: signingInfoModel); return(buildModel); }