private void AnalyzePackages(PackagesConfig config)
        {
            Console.Write("Analyzing packages... ");

            foreach (var package in config.AllPackages().Select(e => e.AsPackage()))
            {
                var log = new LogPackage
                {
                    PackageId        = package.Id,
                    ProjectName      = m_checker.ProjectName(package.Id),
                    IsLocal          = m_checker.IsLocal(package.Id),
                    IsStatic         = m_checker.IsStatic(package.Id),
                    SourceVersion    = package.Version,
                    PinnedToCurrent  = m_checker.IsPinnedToCurrentVersion(package.Id),
                    PinnedToSpecific = m_checker.IsPinnedToSpecificVersion(package.Id),
                    IsDependency     = m_checker.IsDependency(package.Id),
                    IsBundle         = m_checker.IsBundle(package.Id)
                };

                SetupProjectUrl(log);

                m_log.Add(package.Id, log);
            }

            Console.WriteLine("OK");
        }
        private void SetupRelatedProject(ProjectReference reference)
        {
            var fileName      = Path.GetFileName(reference.Include);
            var folderName    = Path.GetFileName(Path.GetDirectoryName(reference.Include));
            var referenceName = reference.Name;

            Console.WriteLine($"Resolving related project '{fileName}'...");

            if (String.IsNullOrEmpty(referenceName))
            {
                referenceName = folderName;

                // quick dirty hardcode below for resolving names
                if (referenceName.StartsWith("Metro.") ||
                    referenceName.StartsWith("FlexQueue."))
                {
                    referenceName = "CnetContent." + folderName;
                }
            }

            // quick dirty hardcode below with calling tools with specific paths and arguments

            var versionBlob  = $"{referenceName}/version.txt";
            var versionLocal = $@"{Args.RelatedPath}\{folderName}.txt";

            Execute.Run(
                "CCNet.Build.AzureDownload.exe",
                $@"Storage=Devbuild Container=build ""BlobFile={versionBlob}"" ""LocalFile={versionLocal}""");

            var version = File.ReadAllText(versionLocal);

            var sourceBlob  = $"{referenceName}/{version}/source.zip";
            var sourceLocal = $@"{Args.RelatedPath}\{folderName}.source.zip";

            Execute.Run(
                "CCNet.Build.AzureDownload.exe",
                $@"Storage=Devbuild Container=snapshot ""BlobFile={sourceBlob}"" ""LocalFile={sourceLocal}""");

            var packagesBlob  = $"{referenceName}/{version}/packages.zip";
            var packagesLocal = $@"{Args.RelatedPath}\{folderName}.packages.zip";

            Execute.Run(
                "CCNet.Build.AzureDownload.exe",
                $@"Storage=Devbuild Container=snapshot ""BlobFile={packagesBlob}"" ""LocalFile={packagesLocal}""");

            var sourceFolder = $@"{Args.RelatedPath}\{folderName}";

            Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{sourceFolder}"" ""{sourceLocal}""");

            var packagesFolder = $@"{Args.RelatedPath}\packages";

            Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{packagesFolder}"" ""{packagesLocal}""");

            // update project location and report as referenced package

            var includePath = Path.Combine(Args.RelatedPath, folderName, fileName);

            reference.UpdateLocation(includePath);

            m_log.Add(
                referenceName,
                new LogPackage
            {
                PackageId        = referenceName,
                ProjectName      = referenceName,
                ProjectUrl       = $"http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{referenceName}/ViewProjectReport.aspx",
                IsLocal          = true,
                SourceVersion    = null,
                BuildVersion     = new Version(version),
                ProjectReference = true
            });
        }
Example #3
0
		private static void SetupRelatedProject(ProjectReference reference, LogPackages log)
		{
			var fileName = Path.GetFileName(reference.Include);
			var localName = Path.GetFileName(Path.GetDirectoryName(reference.Include));
			var referenceName = reference.Name;

			// another hardcode for resolving the names quickly
			if (String.IsNullOrEmpty(referenceName))
			{
				referenceName = localName;

				if (referenceName.StartsWith("Metro.")
					|| referenceName.StartsWith("FlexQueue."))
				{
					referenceName = "CnetContent." + localName;
				}
			}

			var includePath = Path.Combine(Args.RelatedPath, localName, fileName);

			// quick dirty hardcode below with calling tools with specific paths and arguments

			var blobVersion = String.Format("{0}/version.txt", referenceName);
			var localVersion = String.Format(@"{0}\{1}.txt", Args.RelatedPath, localName);

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				String.Format(
					@"Storage=Devbuild Container=build ""BlobFile={0}"" ""LocalFile={1}""",
					blobVersion,
					localVersion));

			var version = File.ReadAllText(localVersion);

			var blobSnapshot = String.Format("{0}/{1}/{0}.snapshot.zip", referenceName, version);
			var localSnapshot = String.Format(@"{0}\{1}.zip", Args.RelatedPath, localName);

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				String.Format(
					@"Storage=Devbuild Container=snapshot ""BlobFile={0}"" ""LocalFile={1}""",
					blobSnapshot,
					localSnapshot));

			var localFolder = String.Format(@"{0}\{1}", Args.RelatedPath, localName);

			Execute.Run(
				@"C:\Program Files\7-Zip\7z.exe",
				String.Format(@"x ""-o{0}"" ""{1}""", localFolder, localSnapshot));

			reference.UpdateLocation(includePath);

			log.Add(
				referenceName,
				new LogPackage
				{
					PackageId = referenceName,
					ProjectName = referenceName,
					ProjectUrl = String.Format("http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{0}/ViewProjectReport.aspx", referenceName),
					IsLocal = true,
					SourceVersion = null,
					BuildVersion = new Version(version),
					ProjectReference = true
				});
		}
Example #4
0
        private static void SetupRelatedProject(ProjectReference reference, LogPackages log)
        {
            var fileName      = Path.GetFileName(reference.Include);
            var localName     = Path.GetFileName(Path.GetDirectoryName(reference.Include));
            var referenceName = reference.Name;

            // another hardcode for resolving the names quickly
            if (String.IsNullOrEmpty(referenceName))
            {
                referenceName = localName;

                if (referenceName.StartsWith("Metro.") ||
                    referenceName.StartsWith("FlexQueue."))
                {
                    referenceName = "CnetContent." + localName;
                }
            }

            var includePath = Path.Combine(Args.RelatedPath, localName, fileName);

            // quick dirty hardcode below with calling tools with specific paths and arguments

            var blobVersion  = String.Format("{0}/version.txt", referenceName);
            var localVersion = String.Format(@"{0}\{1}.txt", Args.RelatedPath, localName);

            Execute.Run(
                "CCNet.Build.AzureDownload.exe",
                String.Format(
                    @"Storage=Devbuild Container=build ""BlobFile={0}"" ""LocalFile={1}""",
                    blobVersion,
                    localVersion));

            var version = File.ReadAllText(localVersion);

            var blobSnapshot  = String.Format("{0}/{1}/{0}.snapshot.zip", referenceName, version);
            var localSnapshot = String.Format(@"{0}\{1}.zip", Args.RelatedPath, localName);

            Execute.Run(
                "CCNet.Build.AzureDownload.exe",
                String.Format(
                    @"Storage=Devbuild Container=snapshot ""BlobFile={0}"" ""LocalFile={1}""",
                    blobSnapshot,
                    localSnapshot));

            var localFolder = String.Format(@"{0}\{1}", Args.RelatedPath, localName);

            Execute.Run(
                @"C:\Program Files\7-Zip\7z.exe",
                String.Format(@"x ""-o{0}"" ""{1}""", localFolder, localSnapshot));

            reference.UpdateLocation(includePath);

            log.Add(
                referenceName,
                new LogPackage
            {
                PackageId        = referenceName,
                ProjectName      = referenceName,
                ProjectUrl       = String.Format("http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{0}/ViewProjectReport.aspx", referenceName),
                IsLocal          = true,
                SourceVersion    = null,
                BuildVersion     = new Version(version),
                ProjectReference = true
            });
        }