Beispiel #1
0
        public void DoControl(SourceControllerJobs job)
        {
            switch (job)
            {
            case SourceControllerJobs.fetchBS:
                if (BuildServer.DobBSJob(BuildServerJobs.fetch))
                {
                    _BuildServerRevision = BuildServer.GetVersion();
                }
                break;

            case SourceControllerJobs.buildBS:
                if (BuildServer.DobBSJob(BuildServerJobs.build))
                {
                    _BuildServerRevision = BuildServer.GetVersion();
                }
                break;

            case SourceControllerJobs.updatePackageFromBuild:
                SCMRevision buildVersion = BuildServer.GetVersion();
                if (buildVersion != null && Versions.LatestVersion.VersionTag != buildVersion.Revision)
                {
                    BuildArtifacts arts = BuildServer.GetArtifacts();
                    if (arts != null)    // artifacts taken from build server
                    {
                        Versions.AddVersion(buildVersion, arts);
                        _PackageRevision = Versions.LatestRevision;
                    }
                }
                break;

            default:
                break;
            }
        }
Beispiel #2
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);
        }
Beispiel #3
0
        public List <SCMRevision> GetVersions()
        {
            List <SCMRevision> vers = new List <SCMRevision>();

            foreach (string f in versionContainer.GetVersions())
            {
                VersionData vd = versionContainer.GetSpecificVersionData(f + "/.revision");
                if (vd == null)
                {
                    Console.WriteLine("binary version {0} unannotated with revision data in {1}", f, Path);
                    continue;
                }
                SCMRevision vr = SCMRevision.DeSerialise(vd.data);
                vr.CreateAt = vd.Created;
                vers.Add(vr);
            }
            return(vers);
        }
Beispiel #4
0
        public List <SourceControllerJobs> GetAllowedJobs()
        {
            List <SourceControllerJobs> result = new List <SourceControllerJobs>();
            List <BuildServerJobs>      bsjobs = BuildServer.GetAllowedJobs();

            HasAdd <BuildServerJobs, SourceControllerJobs>(BuildServerJobs.fetch, SourceControllerJobs.fetchBS,
                                                           bsjobs, result);
            HasAdd <BuildServerJobs, SourceControllerJobs>(BuildServerJobs.build, SourceControllerJobs.buildBS,
                                                           bsjobs, result);

            SCMRevision buildVersion = BuildServer.GetVersion();

            if (buildVersion != null && Versions.LatestVersion.VersionTag != buildVersion.Revision)
            {
                result.Add(SourceControllerJobs.updatePackageFromBuild);
            }

            return(result);
        }
Beispiel #5
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
        }