Ejemplo n.º 1
0
            public void should_not_include_build_in_comparison()
            {
                var v1 = Semver.Parse("1.2.3+fuu");
                var v2 = Semver.Parse("1.2.3+bar");

                var compared = v1.CompareTo(v2);

                Assert.Equal(0, compared);
            }
Ejemplo n.º 2
0
        private void ScanDirectory(DirectoryInfo directory, List <Project> projects, Semver currentVersion)
        {
            var versionFile = directory.GetFiles("version.txt").SingleOrDefault();

            if (versionFile != null)
            {
                Program.VerboseOut(Verbose.Scanning, "Found version.txt at {0}", directory.FullName);
                var parser        = new VersionFileParser(versionFile);
                var parsedVersion = parser.GetVersion();

                Program.VerboseOut(Verbose.Scanning, "Parsed version: {0}", parsedVersion);

                if (Program.RootDirectory.FullName.Equals(directory.FullName) && currentVersion == Semver.NoVersion)
                {
                    Program.RootVersion = parsedVersion;
                    Program.VerboseOut(Verbose.Scanning, "Setting root version: {0}", parsedVersion);
                }

                currentVersion = parsedVersion;
            }

            var nuspecFile = directory.GetFiles("*.nuspec")
                             .FirstOrDefault(file => file.Name.StartsWith(directory.Name));
            var projFile = directory.GetFiles("*.csproj")
                           .FirstOrDefault(file => file.Name.StartsWith(directory.Name));

            if (projFile != null || nuspecFile != null)
            {
                // We say that this is a project if it has either a projfile or a nuspec file.
                var projName = directory.Name;
                Program.VerboseOut(Verbose.Scanning, "Found project {0} at {1}", projName, directory.FullName);

                var project = new Project {
                    Name    = projName,
                    Path    = directory.FullName,
                    Version = currentVersion,
                    Nuspec  = (nuspecFile != null) ? nuspecFile.FullName : null
                };

                projects.Add(project);
            }

            if (_scan)
            {
                var directories = directory.GetDirectories();
                foreach (var directoryInfo in directories)
                {
                    try {
                        ScanDirectory(directoryInfo, projects, currentVersion);
                    }
                    catch (PathTooLongException) {
                        Program.VerboseOut(Verbose.Warning,
                                           "Skipping subdir {0}; path too long", directoryInfo.FullName);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public Project[] Scan(Semver version, bool scan = false)
        {
            _scan = scan;
            var projects = new List <Project>();

            ScanDirectory(Program.RootDirectory, projects, version);

            return(projects.ToArray());
        }
Ejemplo n.º 4
0
            public void should_return_1_when_args_major_nr_is_less_than_own_major_nr_other_things_equal()
            {
                var v1 = Semver.Parse("2.1.0");
                var v2 = Semver.Parse("1.1.0");

                var compared = v1.CompareTo(v2);

                Assert.Equal(1, compared);
            }
Ejemplo n.º 5
0
            public void should_return_minus_1_when_own_prerelease_has_less_fields_than_other()
            {
                var v1 = Semver.Parse("1.2.3-pre");
                var v2 = Semver.Parse("1.2.3-pre.1");

                var compared = v1.CompareTo(v2);

                Assert.Equal(-1, compared);
            }
Ejemplo n.º 6
0
            public void should_return_minus_1_when_self_is_prerelease()
            {
                var v1 = Semver.Parse("1.2.3-pre");
                var v2 = Semver.Parse("1.2.3");

                var compared = v1.CompareTo(v2);

                Assert.Equal(-1, compared);
            }
Ejemplo n.º 7
0
            public void should_return_minus_1_when_own_numeric_prerelease_is_less_than_other()
            {
                var v1 = Semver.Parse("1.2.3-1");
                var v2 = Semver.Parse("1.2.3-2");

                var compared = v1.CompareTo(v2);

                Assert.Equal(-1, compared);
            }
Ejemplo n.º 8
0
            public void should_return_minus_1_when_own_prerelease_is_numeric_and_other_is_alphanum()
            {
                var v1 = Semver.Parse("1.2.3-1");
                var v2 = Semver.Parse("1.2.3-alpha");

                var compared = v1.CompareTo(v2);

                Assert.Equal(-1, compared);
            }
Ejemplo n.º 9
0
            public void should_return_0_when_versions_are_equal()
            {
                var v1 = Semver.Parse("1.2.3");
                var v2 = Semver.Parse("1.2.3");

                var compared = v1.CompareTo(v2);

                Assert.Equal(0, compared);
            }
Ejemplo n.º 10
0
            public void should_return_minus_1_when_args_minor_nr_is_greater_than_own_minor_nr_other_things_equal()
            {
                var v1 = Semver.Parse("1.0.0");
                var v2 = Semver.Parse("1.1.0");

                var compared = v1.CompareTo(v2);

                Assert.Equal(-1, compared);
            }
Ejemplo n.º 11
0
            public void should_parse_a_version_with_both_prerelease_and_build_info()
            {
                var semver = Semver.Parse("1.2.3-beta+master");

                Assert.Equal(1, semver.Major);
                Assert.Equal(2, semver.Minor);
                Assert.Equal(3, semver.Patch);
                Assert.Equal("beta", semver.PreRelease);
                Assert.Equal("master", semver.Build);
            }
        public override int GetHashCode()
        {
            int hash = 1;

            if (semver_ != null)
            {
                hash ^= Semver.GetHashCode();
            }
            if (custom_ != null)
            {
                hash ^= Custom.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Ejemplo n.º 13
0
        public static void HandleSetAction(setArgs args)
        {
            RootVersion = args.version.Length > 0 ? Semver.Parse(args.version) : Semver.NoVersion;
            var hasBuild = args.build.Length > 0;

            var scanner  = new ProjectScanner();
            var projects = scanner.Scan(RootVersion, args.scan);

            VerboseOut(Verbose.Scanning, "Scan done; found {0} projects", projects.Length);

            if (args.@override && RootVersion == Semver.NoVersion)
            {
                VerboseOut(Verbose.Warning,
                           "No root version set; all versions will be overridden with {0}", Semver.NoVersion);
            }

            if (hasBuild)
            {
                RootVersion = RootVersion.OverrideBuild(args.build);
            }

            if (args.tcbuildno)
            {
                Console.Out.WriteLine("##teamcity[buildNumber '{0}']", RootVersion);
            }

            foreach (var project in projects)
            {
                VerboseOut(Verbose.Version, "Versioning project {0}", project.Name);
                if (args.@override && RootVersion != Semver.NoVersion)
                {
                    VerboseOut(Verbose.Version, "Overriding version {0} => {1}", project.Version, RootVersion);
                    project.Version = RootVersion;
                }
                if (hasBuild)
                {
                    VerboseOut(Verbose.Version, "Overriding build {0} => {1}", project.Version.Build, args.build);
                    project.Version = project.Version.OverrideBuild(args.build);
                }

                AssemblyVersionSetter.SetVersion(project.AssemlyInfo, project.Version);
                NuspecVersionSetter.SetVersion(project.Nuspec, project.Version);
            }
        }
 public void MergeFrom(EstafetteVersion other)
 {
     if (other == null)
     {
         return;
     }
     if (other.semver_ != null)
     {
         if (semver_ == null)
         {
             Semver = new global::Estafette.Ci.Manifest.V1.EstafetteSemverVersion();
         }
         Semver.MergeFrom(other.Semver);
     }
     if (other.custom_ != null)
     {
         if (custom_ == null)
         {
             Custom = new global::Estafette.Ci.Manifest.V1.EstafetteCustomVersion();
         }
         Custom.MergeFrom(other.Custom);
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Integration dependency info.
 /// </summary>
 /// <param name="runningVersion">Running version of the dependency.</param>
 /// <param name="latestAvailableVersion">Latest available version of the dependency.</param>
 public DependencyInfo(Semver runningVersion, Semver latestAvailableVersion)
 {
     RunningVersion         = runningVersion ?? throw new ArgumentNullException(nameof(runningVersion));
     LatestAvailableVersion = latestAvailableVersion ?? throw new ArgumentNullException(nameof(latestAvailableVersion));
 }
Ejemplo n.º 16
0
 public void should_return_false_when_args_is_not_a_valid_semver_version()
 {
     Assert.False(Semver.IsValidSemver("foobar"));
 }
Ejemplo n.º 17
0
 public void should_return_true_when_arg_is_a_valid_semver_version()
 {
     Assert.True(Semver.IsValidSemver("1.2.3-pre+build"));
 }
Ejemplo n.º 18
0
            public void should_trim_starting_whitespace()
            {
                var semver = Semver.Parse(" 1.0.0");

                Assert.Equal(semver, new Semver(1, 0, 0));
            }
Ejemplo n.º 19
0
            public void should_return_false_when_other_object_is_not_a_semver()
            {
                var v1 = Semver.Parse("1.2.4-beta");

                Assert.False(v1.Equals(new object()));
            }
Ejemplo n.º 20
0
 public void should_throw_a_format_exception_when_the_input_string_is_an_invalid_semver()
 {
     Assert.Throws <FormatException>(() => Semver.Parse("1.2-foo"));
 }
Ejemplo n.º 21
0
            public void should_display_full_version_when_called_with_F_argument()
            {
                var semver = new Semver(1, 2, 3, "pre", "build");

                Assert.Equal("1.2.3-pre+build", semver.ToString("F"));
            }
Ejemplo n.º 22
0
        public Semver GetVersion()
        {
            var line = File.ReadLines(_file.FullName).First(l => !string.IsNullOrWhiteSpace(l));

            return(Semver.Parse(line));
        }
Ejemplo n.º 23
0
            public void should_throw_format_exception_when_format_is_not_a_valid_value()
            {
                var semver = new Semver(1, 2, 3, "pre", "build");

                Assert.Throws <FormatException>(() => semver.ToString("X"));
            }
Ejemplo n.º 24
0
            public void should_display_normal_version_when_called_with_V_argument()
            {
                var semver = new Semver(1, 2, 3, "pre", "build");

                Assert.Equal("1.2.3", semver.ToString("V"));
            }
Ejemplo n.º 25
0
            public void should_display_normal_version_when_called_with_P_argument_and_version_is_not_prerelease()
            {
                var semver = new Semver(1, 2, 3, "", "build");

                Assert.Equal("1.2.3", semver.ToString("P"));
            }
Ejemplo n.º 26
0
            public void should_parse_a_version_with_build_meta_data_but_no_prerelase_info()
            {
                var semver = Semver.Parse("1.2.3+master.c34fede");

                Assert.Equal("master.c34fede", semver.Build);
            }
Ejemplo n.º 27
0
            public void should_return_true_when_version_is_a_pre_release()
            {
                var semver = new Semver(1, 2, 3, "pre");

                Assert.True(semver.IsPreRelease);
            }
Ejemplo n.º 28
0
            public void should_return_false_when_version_is_not_a_pre_release()
            {
                var semver = new Semver(1, 2, 3);

                Assert.False(semver.IsPreRelease);
            }
Ejemplo n.º 29
0
            public void should_parse_a_version_with_prerelese_information()
            {
                var semver = Semver.Parse("1.2.3-beta.2");

                Assert.Equal("beta.2", semver.PreRelease);
            }