示例#1
0
    def test_update_version_in_BUILD_pom__add_version_qualifier(self):
        pack1 = "somedir/p1"
        pack2 = "somedir/p2"
        repo_root = tempfile.mkdtemp("monorepo")
        pack1_path = os.path.join(repo_root, pack1)
        os.makedirs(pack1_path)
        self._write_build_pom(pack1_path, "p1a", "p1g", "1.1.1-SNAPSHOT",
                              version_increment_strategy="major")

        pack2_path = os.path.join(repo_root, pack2)
        os.makedirs(pack2_path)
        self._write_build_pom(pack2_path, "p2a", "p2g", "2.2.2",
                              version_increment_strategy="major")

        buildpomupdate.update_build_pom_file(
            repo_root, [pack1, pack2], version_qualifier_to_add="the_qual")

        with open(os.path.join(pack1_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p1g"', content)
            self.assertIn('artifact_id = "p1a"', content)
            self.assertIn('version = "1.1.1-the_qual-SNAPSHOT"', content)
            self.assertIn(')', content)

        with open(os.path.join(pack2_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p2g"', content)
            self.assertIn('artifact_id = "p2a"', content)
            self.assertIn('version = "2.2.2-the_qual"', content)
            self.assertIn(')', content)
示例#2
0
    def test_update_version_in_BUILD_pom__set_to_last_released_version__no_build_pom_released_file(
            self):
        package_rel_path = "package1/package2"
        repo_root = tempfile.mkdtemp("monorepo")
        repo_package = os.path.join(repo_root, package_rel_path)
        os.makedirs(repo_package)
        self._write_build_pom(repo_package,
                              "a1",
                              "g1",
                              "1.2.3",
                              version_increment_strategy="major")

        buildpomupdate.update_build_pom_file(
            repo_root, [package_rel_path],
            new_version=None,
            set_version_to_last_released_version=True)

        with open(os.path.join(repo_package, "MVN-INF", "BUILD.pom"),
                  "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "g1"', content)
            self.assertIn('artifact_id = "a1"', content)
            self.assertIn('version = "1.2.3"', content)
            self.assertIn(')', content)
示例#3
0
    def test_update_version_in_BUILD_pom__set_to_last_released_version__multiple_files(self):
        pack1 = "somedir/p1"
        pack2 = "somedir/p2"
        repo_root = tempfile.mkdtemp("monorepo")
        pack1_path = os.path.join(repo_root, pack1)
        os.makedirs(pack1_path)
        self._write_build_pom(pack1_path, "p1a", "p1g", "1.1.1-SNAPSHOT",
                              version_increment_strategy="major")
        self._write_build_pom_released(pack1_path, "9.9.9", "abcdef")

        pack2_path = os.path.join(repo_root, pack2)
        os.makedirs(pack2_path)
        self._write_build_pom(pack2_path, "p2a", "p2g", "2.2.2",
                              version_increment_strategy="major")
        self._write_build_pom_released(pack2_path, "10.10.10", "abcdef")

        buildpomupdate.update_build_pom_file(
            repo_root, [pack1, pack2], new_version=None,
            set_version_to_last_released_version=True)

        with open(os.path.join(pack1_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p1g"', content)
            self.assertIn('artifact_id = "p1a"', content)
            self.assertIn('version = "9.9.9"', content)
            self.assertIn(')', content)

        with open(os.path.join(pack2_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p2g"', content)
            self.assertIn('artifact_id = "p2a"', content)
            self.assertIn('version = "10.10.10"', content)
            self.assertIn(')', content)
示例#4
0
    def test_update_version_in_BUILD_pom(self):
        package_rel_path = "package1/package2"
        repo_root = tempfile.mkdtemp("monorepo")
        repo_package = os.path.join(repo_root, package_rel_path)
        os.makedirs(repo_package)
        self._write_build_pom(repo_package, "a1", "g1", "1.2.3")

        buildpomupdate.update_build_pom_file(repo_root, [package_rel_path],
                                             "4.5.6")

        with open(os.path.join(repo_package, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "g1"', content)
            self.assertIn('artifact_id = "a1"', content)
            self.assertIn('version = "4.5.6"', content)
            self.assertIn(')', content)
示例#5
0
    def test_update_version_in_BUILD_pom__add_version_qualifier__slashes_are_removed(self):
        pack1 = "somedir/p1"
        repo_root = tempfile.mkdtemp("monorepo")
        pack1_path = os.path.join(repo_root, pack1)
        os.makedirs(pack1_path)
        self._write_build_pom(pack1_path, "p1a", "p1g", "3.2.1",
                              version_increment_strategy="major")

        buildpomupdate.update_build_pom_file(
            repo_root, [pack1], version_qualifier_to_add="-the_qual-")

        with open(os.path.join(pack1_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p1g"', content)
            self.assertIn('artifact_id = "p1a"', content)
            self.assertIn('version = "3.2.1-the_qual"', content)
            self.assertIn(')', content)
示例#6
0
    def test_update_pom_generation_mode_in_BUILD_pom(self):
        pack1 = "somedir/p1"
        repo_root = tempfile.mkdtemp("monorepo")
        pack1_path = os.path.join(repo_root, pack1)
        os.makedirs(pack1_path)
        self._write_build_pom(pack1_path, "p1a", "p1g", "3.2.1",
                              pom_generation_mode="jar")

        buildpomupdate.update_build_pom_file(
            repo_root, [pack1], new_pom_generation_mode="template")

        with open(os.path.join(pack1_path, "MVN-INF", "BUILD.pom"), "r") as f:
            content = f.read()
            self.assertIn('maven_artifact(', content)
            self.assertIn('group_id = "p1g"', content)
            self.assertIn('artifact_id = "p1a"', content)
            self.assertIn('version = "3.2.1"', content)
            self.assertIn('pom_generation_mode = "template"', content)
            self.assertIn(')', content)
示例#7
0
    args = _parse_arguments(sys.argv[1:])
    repo_root = common.get_repo_root(args.repo_root)
    cfg = config.load(repo_root)
    packages = argsupport.get_all_packages(repo_root, args.package)
    if len(packages) == 0:
        raise Exception("Did not find any BUILD.pom packages at [%s]" %
                        args.package)

    if (args.new_version is not None
            or args.update_version_using_version_increment_strategy
            or args.set_version_to_last_released
            or args.add_version_qualifier is not None
            or args.new_version_increment_strategy is not None
            or args.new_pom_generation_mode is not None
            or args.add_missing_pom_generation_mode):

        buildpomupdate.update_build_pom_file(
            repo_root, packages, args.new_version,
            args.update_version_using_version_increment_strategy,
            args.new_version_increment_strategy,
            args.set_version_to_last_released, args.add_version_qualifier,
            args.new_pom_generation_mode, args.add_missing_pom_generation_mode)

    if (args.new_released_version is not None
            or args.new_released_artifact_hash is not None
            or args.update_released_artifact_hash_to_current):
        buildpomupdate.update_released_artifact(
            repo_root, packages, cfg.all_src_exclusions,
            args.new_released_version, args.new_released_artifact_hash,
            args.update_released_artifact_hash_to_current)