public RoundhouseMigrationRunner(
     string repository_path,
     Environment environment,
     KnownFolders known_folders,
     FileSystemAccess file_system,
     DatabaseMigrator database_migrator,
     VersionResolver version_resolver,
     bool silent,
     bool dropping_the_database,
     bool dont_create_the_database,
     bool run_in_a_transaction,
     bool use_simple_recovery,
     ConfigurationPropertyHolder configuration)
 {
     this.known_folders = known_folders;
     this.repository_path = repository_path;
     this.environment = environment;
     this.file_system = file_system;
     this.database_migrator = database_migrator;
     this.version_resolver = version_resolver;
     this.silent = silent;
     this.dropping_the_database = dropping_the_database;
     this.dont_create_the_database = dont_create_the_database;
     this.run_in_a_transaction = run_in_a_transaction;
     this.use_simple_recovery = use_simple_recovery;
     this.configuration = configuration;
 }
        protected virtual bool Run()
        {
            var currentDirectory        = Directory.GetCurrentDirectory();
            var rootRepositoryDirectory = VersionResolver.GetRootRepositoryDirectoryOf(currentDirectory);

            Log($"{nameof(BaseGit)}.{nameof(Run)}: current directory = {currentDirectory}, root repository directory = {rootRepositoryDirectory}");

            var rawDependencies           = JsonConvert.DeserializeObject <CompileDependencies>(File.ReadAllText(DependencyFile));
            var userDefinedDependencies   = readUserDefinedDependencies();
            var userDefinedAuthentication = readUserDefinedAuth();
            var dependencies = MergeDependencies(rawDependencies, userDefinedDependencies, userDefinedAuthentication);

            Names = dependencies.Select(d => $@"{d.OutputFolder}\build.xml").ToArray();

            try
            {
                IndentLevel++;

                using (var myRepository = new Repository(rootRepositoryDirectory.FullName))
                {
                    foreach (var dependency in dependencies)
                    {
                        if (dependency.UseGit)
                        {
                            var cloneOptions = new CloneOptions()
                            {
                                CredentialsProvider = (_url, _user, _cred) => dependency.GetCredentials(Authentication)
                            };

                            if (dependency.Branch == "autoversioning")
                            {
                                HandleAutoVersioning(myRepository, rawDependencies.ShortName, dependency, cloneOptions);
                            }
                            else
                            {
                                HandleFixedVersioning(dependency, cloneOptions);
                            }
                        }
                        else
                        {
                            Log($"Dependency {dependency} does not use a remote repository");
                        }
                    }
                }
            }
            finally
            {
                IndentLevel--;
            }

            return(true);
        }
Beispiel #3
0
        [InlineData("Cuemon", "version.json", "6.0.0-preview.{height}.11")] // https://github.com/gimlichael/Cuemon
        public void GetVersionTest(string repositoryName, string versionPath, string expectedVersion)
        {
            string path =
                Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
                    @"Source\Repos",
                    repositoryName);

            GitRepository   repository = new GitRepository(path);
            VersionResolver resolver   = new VersionResolver(repository, versionPath, NullLogger <VersionResolver> .Instance);

            var version = resolver.GetVersion();

            Assert.Equal(expectedVersion, version);
        }
Beispiel #4
0
        private string GetInstalledRuntimeVersion(ContextName context)
        {
            using (var contextKey = PackageRegistry.OpenRegistryRoot(false, context))
            {
                if (contextKey == null)
                {
                    return(null);
                }

                string installationPath = (string)contextKey.GetValue("InstallationPath");

                return(VersionResolver.GetVersion(
                           PackageManager.GetEntryAssemblyLocation(installationPath)
                           ));
            }
        }
 public void TestVesionResolver_SearchForRepositoryRootFolder()
 {
     Trace.WriteLine(VersionResolver.GetRootRepositoryDirectoryOf(Directory.GetCurrentDirectory()));
 }
Beispiel #6
0
 public void TestBuildAssemblyVersion()
 {
     VersionResolver.LoadFiles(@"..\..\..\TestData\versions.xml", @"..\..\..\TestData\revisions.xml");
     Assert.AreEqual("1.2.3.5", VersionResolver.BuildAssemblyVersion("MajorVersion", "MinorVersion", "Release", "Revision"));
 }
Beispiel #7
0
 public void TestVersionsUnexisting()
 {
     VersionResolver.LoadFiles("UnexistingFile");
     Assert.AreEqual("", VersionResolver.Versions["UnexistingProperty"]);
 }