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; } }
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); }
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); }
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); }
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 }