Esempio n. 1
0
        public SCMRevision GetVersion()
        {
            BuildsRootObject builds = this.GetBuilds();
            if (builds == null || builds.count == 0)
                return null;

            BuildRootObject build = GetBuild(builds.build[0]);
            ChangeRootObject change = GetChange(build);
            if (change.count == 0)// no changes --> trail for build with changes
            {
                bool changesFound = false;
                for (int i = 1; i < builds.build.Count; i++)
                {
                    build = GetBuild(builds.build[i]);
                    change = GetChange(build);
                    if (change.count > 0)
                    {
                        changesFound = true;
                        break;
                    }
                }
                if (!changesFound)
                    return new SCMRevision
                    {
                        Revision = build.revisions.revision[0].version
                    };
            }
            ChangesRootObject changes = GetChanges(change);

            DateTime at = DateTime.ParseExact(changes.date, "yyyyMMddTHHmmsszzzz", System.Globalization.CultureInfo.InvariantCulture);
            SCMRevision ver = new SCMRevision
            {
                Commiter = changes.username,
                CommitMessage = changes.comment,
                CommitTime = at,
                CreateAt = at,
                Revision = changes.version
            };

            return ver;
        }
Esempio n. 2
0
        public void AddVersion(SCMRevision assemblyRev, BuildServers.BuildArtifacts files)
        {
            PackageInfo = getPackageInfo(); // make sure we have actual version
            if (PackageInfo == null)
                PackageInfo = new AssemblyPackage();

            string revision = assemblyRev.Revision;

            AssemblyArtifacts pv = PackageInfo.AddRevision(files);

            assemblyRev.CreateAt = DateTime.Now;
            byte[] revdata = assemblyRev.Serialise();
            versionContainer.AddVersionData(revision + "/.revision", revdata);
            foreach (var artF in files.Artefacts)
            {
                versionContainer.AddVersionData(revision + "/" + artF.FileName, artF.Data);
                pv.AddArtefact(artF.FileName, artF);
            }
            setPackageInfo(PackageInfo);// write to container
        }