protected IEnumerable <IDependencyUpdater> CreateUpdaters()
        {
            if (ProjectJsonFiles != null && ProjectJsonFiles.Any())
            {
                yield return(new ProjectJsonUpdater(ProjectJsonFiles.Select(item => item.ItemSpec)));
            }

            foreach (ITaskItem step in XmlUpdateStep ?? Enumerable.Empty <ITaskItem>())
            {
                string buildInfoName = step.GetMetadata("BuildInfoName");
                string packageId     = step.GetMetadata("PackageId");

                FileRegexUpdater updater;

                if (!string.IsNullOrEmpty(buildInfoName))
                {
                    updater = new FileRegexReleaseUpdater
                    {
                        BuildInfoName = buildInfoName
                    };
                }
                else
                {
                    updater = new FileRegexPackageUpdater
                    {
                        PackageId = packageId
                    };
                }
                updater.Path             = step.GetMetadata("Path");
                updater.Regex            = CreateXmlUpdateRegex(step.GetMetadata("ElementName"), "version");
                updater.VersionGroupName = "version";

                yield return(updater);
            }
        }
Beispiel #2
0
        protected IEnumerable <IDependencyUpdater> CreateUpdaters()
        {
            if (ProjectJsonFiles != null && ProjectJsonFiles.Any())
            {
                yield return(new ProjectJsonUpdater(ProjectJsonFiles.Select(item => item.ItemSpec)));
            }

            foreach (ITaskItem step in UpdateStep ?? Enumerable.Empty <ITaskItem>())
            {
                string type = step.GetMetadata("UpdaterType");
                switch (type)
                {
                case "Xml":
                    yield return(CreateXmlUpdater(step));

                    break;

                case "File":
                    yield return(new FilePackageUpdater
                    {
                        PackageId = GetRequiredMetadata(step, "PackageId"),
                        Path = GetRequiredMetadata(step, "Path"),
                    });

                    break;

                case "Tool versions":
                    yield return(new ToolVersionsUpdater
                    {
                        Path = GetRequiredMetadata(step, "Path"),
                    });

                    break;

                case "Submodule from package":
                    yield return(new IndicatorPackageSubmoduleUpdater(
                                     GetRequiredMetadata(step, "IndicatorPackage"))
                    {
                        PackageDownloadBaseUrl = GetRequiredMetadata(step, "PackageDownloadBaseUrl"),
                        Path = GetRequiredMetadata(step, "Path")
                    });

                    break;

                case "Submodule from latest":
                    yield return(new LatestCommitSubmoduleUpdater(
                                     GetRequiredMetadata(step, "Repository"),
                                     GetRequiredMetadata(step, "Ref"))
                    {
                        Path = GetRequiredMetadata(step, "Path")
                    });

                    break;

                default:
                    throw new NotSupportedException(
                              $"Unsupported updater '{step.ItemSpec}': UpdaterType '{type}'.");
                }
            }
        }
Beispiel #3
0
        private IEnumerable <IDependencyUpdater> GetDependencyUpdaters()
        {
            if (ProjectJsonFiles?.Any() ?? false)
            {
                yield return(new ProjectJsonUpdater(ProjectJsonFiles.Select(item => item.ItemSpec)));
            }

            if (XmlUpdateStep != null)
            {
                foreach (ITaskItem step in XmlUpdateStep)
                {
                    yield return(new FileRegexReleaseUpdater
                    {
                        Path = step.GetMetadata("Path"),
                        Regex = new Regex($@"<{step.GetMetadata("ElementName")}>(?<version>.*)<"),
                        VersionGroupName = "version",
                        BuildInfoName = step.GetMetadata("BuildInfoName")
                    });
                }
            }
        }
Beispiel #4
0
        private IEnumerable <IDependencyUpdater> GetDependencyUpdaters()
        {
            if (ProjectJsonFiles?.Any() ?? false)
            {
                yield return(new ProjectJsonUpdater(ProjectJsonFiles.Select(item => item.ItemSpec)));
            }

            if (XmlUpdateStep != null)
            {
                foreach (ITaskItem step in XmlUpdateStep)
                {
                    string buildInfoName = step.GetMetadata("BuildInfoName");
                    string packageId     = step.GetMetadata("PackageId");

                    FileRegexUpdater updater;

                    if (!string.IsNullOrEmpty(buildInfoName))
                    {
                        updater = new FileRegexReleaseUpdater
                        {
                            BuildInfoName = buildInfoName
                        };
                    }
                    else
                    {
                        updater = new FileRegexPackageUpdater
                        {
                            PackageId = packageId
                        };
                    }
                    updater.Path             = step.GetMetadata("Path");
                    updater.Regex            = new Regex($@"<{step.GetMetadata("ElementName")}>(?<version>.*)<");
                    updater.VersionGroupName = "version";

                    yield return(updater);
                }
            }
        }
Beispiel #5
0
        protected IEnumerable <IDependencyUpdater> CreateUpdaters()
        {
            if (ProjectJsonFiles != null && ProjectJsonFiles.Any())
            {
                yield return(new ProjectJsonUpdater(ProjectJsonFiles.Select(item => item.ItemSpec)));
            }

            foreach (ITaskItem step in UpdateStep ?? Enumerable.Empty <ITaskItem>())
            {
                string type = step.GetMetadata("UpdaterType");
                switch (type)
                {
                case "Xml":
                    yield return(CreateXmlUpdater(step));

                    break;

                case "MSBuildSdk":
                    yield return(CreateMSBuildSdkUpdater(step));

                    break;

                case "File":
                    yield return(ConfigureFileUpdater(
                                     new FilePackageUpdater
                    {
                        PackageId = GetRequiredMetadata(step, "PackageId"),
                        Path = GetRequiredMetadata(step, "Path"),
                    },
                                     step));

                    break;

                case "Tool versions":
                    yield return(new ToolVersionsUpdater
                    {
                        Path = GetRequiredMetadata(step, "Path"),
                    });

                    break;

                case "Submodule from package":
                    yield return(new IndicatorPackageSubmoduleUpdater(
                                     GetRequiredMetadata(step, "IndicatorPackage"))
                    {
                        PackageDownloadBaseUrl = GetRequiredMetadata(step, "PackageDownloadBaseUrl"),
                        Path = GetRequiredMetadata(step, "Path")
                    });

                    break;

                case "Submodule from latest":
                    yield return(new LatestCommitSubmoduleUpdater(
                                     GetRequiredMetadata(step, "Repository"),
                                     GetRequiredMetadata(step, "Ref"))
                    {
                        Path = GetRequiredMetadata(step, "Path")
                    });

                    break;

                case "Submodule from orchestrated build":
                    yield return(new OrchestratedBuildSubmoduleUpdater
                    {
                        Path = GetRequiredMetadata(step, "Path"),
                        BuildName = GetRequiredMetadata(step, "BuildName"),
                        GitUrl = GetRequiredMetadata(step, "GitUrl")
                    });

                    break;

                case "Build attribute from orchestrated build":
                    yield return(CreateOrchestratedBuildUpdater(
                                     step,
                                     OrchestratedBuildUpdateHelpers.BuildAttribute(
                                         GetRequiredMetadata(step, "BuildName"),
                                         GetRequiredMetadata(step, "AttributeName"))));

                    break;

                case "Orchestrated blob feed attribute":
                    yield return(CreateOrchestratedBuildUpdater(
                                     step,
                                     OrchestratedBuildUpdateHelpers.OrchestratedFeedAttribute(
                                         GetRequiredMetadata(step, "AttributeName"))));

                    break;

                case "Orchestrated blob feed package version":
                    yield return(CreateOrchestratedBuildUpdater(
                                     step,
                                     OrchestratedBuildUpdateHelpers.OrchestratedFeedPackageVersion(
                                         GetRequiredMetadata(step, "PackageId"))));

                    break;

                default:
                    throw new NotSupportedException(
                              $"Unsupported updater '{step.ItemSpec}': UpdaterType '{type}'.");
                }
            }
        }