Beispiel #1
0
        public IEnumerable <Metadata> Transform(Metadata metadata)
        {
            if (metadata.Kref != null && metadata.Kref.Source == "jenkins")
            {
                var json = metadata.Json();

                Log.InfoFormat("Executing Jenkins transformation with {0}", metadata.Kref);
                Log.DebugFormat("Input metadata:{0}{1}", Environment.NewLine, json);

                JenkinsOptions options = json["x_netkan_jenkins"]?.ToObject <JenkinsOptions>()
                                         ?? new JenkinsOptions();
                JenkinsRef jRef = new JenkinsRef(metadata.Kref);

                var versions = _api.GetAllBuilds(jRef, options);
                if (_releases.HasValue)
                {
                    versions = versions.Take(_releases.Value);
                }
                foreach (JenkinsBuild build in versions)
                {
                    yield return(TransformOne(metadata, metadata.Json(), build, options));
                }
            }
            else
            {
                yield return(metadata);
            }
        }
Beispiel #2
0
        public IEnumerable <Metadata> Transform(Metadata metadata, TransformOptions opts)
        {
            if (metadata.Kref != null && metadata.Kref.Source == "jenkins")
            {
                var json = metadata.Json();

                Log.InfoFormat("Executing Jenkins transformation with {0}", metadata.Kref);
                Log.DebugFormat("Input metadata:{0}{1}", Environment.NewLine, json);

                JenkinsOptions options = json["x_netkan_jenkins"]?.ToObject <JenkinsOptions>()
                                         ?? new JenkinsOptions();
                JenkinsRef jRef = new JenkinsRef(metadata.Kref);

                var versions = _api.GetAllBuilds(jRef, options);
                if (opts.SkipReleases.HasValue)
                {
                    versions = versions.Skip(opts.SkipReleases.Value);
                }
                if (opts.Releases.HasValue)
                {
                    versions = versions.Take(opts.Releases.Value);
                }
                bool returnedAny = false;
                foreach (JenkinsBuild build in versions)
                {
                    returnedAny = true;
                    yield return(TransformOne(metadata, metadata.Json(), build, options));
                }
                if (!returnedAny)
                {
                    Log.WarnFormat("No releases found for {0}", jRef.BaseUri);
                    yield return(metadata);
                }
            }
            else
            {
                yield return(metadata);
            }
        }