Exemple #1
0
def makeVCSRelease(self, id, branch):
	release = PackageRelease.query.get(id)
	if release is None:
		raise TaskError("No such release!")
	elif release.package is None:
		raise TaskError("No package attached to release")

	with clone_repo(release.package.repo, ref=branch, recursive=True) as repo:
		postReleaseCheckUpdate(self, release, repo.working_tree_dir)

		filename = randomString(10) + ".zip"
		destPath = os.path.join(app.config["UPLOAD_DIR"], filename)

		assert(not os.path.isfile(destPath))
		archiver = GitArchiver(prefix=release.package.name, force_sub=True, main_repo_abspath=repo.working_tree_dir)
		archiver.create(destPath)
		assert(os.path.isfile(destPath))

		release.url         = "/uploads/" + filename
		release.task_id     = None
		release.commit_hash = repo.head.object.hexsha
		release.approve(release.package.author)
		db.session.commit()

		return release.url
Exemple #2
0
def makeVCSRelease(self, id, branch):
    release = PackageRelease.query.get(id)
    if release is None:
        raise TaskError("No such release!")
    elif release.package is None:
        raise TaskError("No package attached to release")

    gitDir, repo = cloneRepo(release.package.repo, ref=branch, recursive=True)

    postReleaseCheckUpdate(self, release, gitDir)

    try:
        filename = randomString(10) + ".zip"
        destPath = os.path.join(app.config["UPLOAD_DIR"], filename)

        assert (not os.path.isfile(destPath))
        archiver = GitArchiver(force_sub=True, main_repo_abspath=gitDir)
        archiver.create(destPath)
        assert (os.path.isfile(destPath))

        release.url = "/uploads/" + filename
        release.task_id = None
        release.commit_hash = repo.head.object.hexsha
        release.approve(release.package.author)
        db.session.commit()

        updateMetaFromRelease.delay(release.id, destPath)

        return release.url
    finally:
        shutil.rmtree(gitDir)
Exemple #3
0
def makeVCSRelease(id, branch):
    release = PackageRelease.query.get(id)
    if release is None:
        raise TaskError("No such release!")
    elif release.package is None:
        raise TaskError("No package attached to release")

    gitDir, repo = cloneRepo(release.package.repo, ref=branch, recursive=True)

    tree = None
    try:
        tree = build_tree(gitDir, expected_type=ContentType[release.package.type.name], \
         author=release.package.author.username, name=release.package.name)
    except MinetestCheckError as err:
        raise TaskError(str(err))

    try:
        filename = randomString(10) + ".zip"
        destPath = os.path.join(app.config["UPLOAD_DIR"], filename)

        assert (not os.path.isfile(destPath))
        archiver = GitArchiver(force_sub=True, main_repo_abspath=gitDir)
        archiver.create(destPath)
        assert (os.path.isfile(destPath))

        release.url = "/uploads/" + filename
        release.task_id = None
        release.commit_hash = repo.head.object.hexsha

        if tree.meta.get("min_minetest_version"):
            release.min_rel = MinetestRelease.get(
                tree.meta["min_minetest_version"], None)

        if tree.meta.get("max_minetest_version"):
            release.max_rel = MinetestRelease.get(
                tree.meta["max_minetest_version"], None)

        release.approve(release.package.author)
        db.session.commit()

        return release.url
    finally:
        shutil.rmtree(gitDir)
 def archive(self, path):
     a = GitArchiver(main_repo_abspath=self.path)
     a.create(path)
 def archive(self, path):
     a = GitArchiver(main_repo_abspath=self.path)
     a.create(path)
def test_git_version_parse(version, mocker):
    mocker.patch.object(GitArchiver, 'run_git_shell', return_value=version)
    assert GitArchiver.get_git_version() == (2, 21, 0, 0, 1)
Exemple #7
0
 def archive(self, path, exclude=True):
     a = GitArchiver(exclude=exclude, main_repo_abspath=self.path)
     a.create(path)