示例#1
0
def create_github_release():
    configure_git()
    version = get_project_version()

    if not version:
        print("Unable to determine the current version")
        sys.exit(1)

    tag_exists = (check_exit_code([
        f'git show-ref --tags --quiet --verify -- "refs/tags/{version}"'
    ]) == 0)

    if not tag_exists:
        run_process(["git", "tag", version])
        run_process(["git", "push", "--tags"])

    _, changelog = get_release_info()

    gh_release_create(
        REPO_SLUG,
        version,
        publish=True,
        name=f"{PROJECT_NAME} {version}",
        body=changelog,
        asset_pattern="dist/*",
    )
示例#2
0
def check_release():
    if not os.path.exists(RELEASE_FILE):
        print("Not releasing a new version because there is no RELEASE file.")
        if CI_SYSTEM == "circleci":
            run_process(["circleci", "step", "halt"])
    elif CI_SYSTEM == "travis":
        print("true")
示例#3
0
def create_github_release():
    try:
        from github_release import gh_release_create
    except ModuleNotFoundError:
        print("Cannot create GitHub release due to missing dependency: github_release")
        sys.exit(1)

    configure_git()
    version = get_project_version()
    tag = f"{TAG_PREFIX}{version}"

    if not version:
        print("Unable to determine the current version")
        sys.exit(1)

    tag_exists = (
        check_exit_code([f'git show-ref --tags --quiet --verify -- "refs/tags/{tag}"'])
        == 0
    )

    if not tag_exists:
        run_process(["git", "tag", tag])
        run_process(["git", "push", "--tags"])

    _, changelog = get_release_info()

    gh_release_create(
        REPO_SLUG,
        tag,
        publish=True,
        name=f"{PROJECT_NAME} {version}",
        body=changelog,
        asset_pattern="dist/*",
    )
示例#4
0
def deploy_release():
    prepare_release()
    run_process(["poetry", "build"])
    create_github_release()
    git_commit_and_push()
    run_process(
        ["poetry", "publish", "-u", "$PYPI_USERNAME", "-p", "$PYPI_PASSWORD"])
示例#5
0
def prepare_release():
    configure_git()

    POETRY_DUMP_VERSION_OUTPUT = re.compile(
        r"Bumping version from \d+\.\d+\.\d+ to (?P<version>\d+\.\d+\.\d+)")

    type_, release_changelog = get_release_info()

    output = run_process(["poetry", "version", type_])
    version_match = POETRY_DUMP_VERSION_OUTPUT.match(output)

    if not version_match:
        print("Unable to bump the project version using Poetry")
        sys.exit(1)

    new_version = version_match.group("version")

    if VERSION_STRINGS:
        for version_file in VERSION_STRINGS:
            file_path = ROOT / version_file
            update_version_strings(file_path, new_version)

    current_date = datetime.utcnow().strftime("%Y-%m-%d")

    old_changelog_data = ""
    header = ""

    if not CHANGELOG_FILE.is_file():
        with open(CHANGELOG_FILE, "a+") as f:
            f.write(f"CHANGELOG\n{CHANGELOG_HEADER}\n\n")

    with open(CHANGELOG_FILE, "r") as f:
        lines = f.readlines()

    for index, line in enumerate(lines):
        if CHANGELOG_HEADER != line.strip():
            continue

        old_changelog_data = lines[index + 1:]
        header = lines[:index + 1]
        break

    with open(CHANGELOG_FILE, "w") as f:
        f.write("".join(header))

        new_version_header = f"{new_version} - {current_date}"

        f.write(f"\n{new_version_header}\n")
        f.write(f"{VERSION_HEADER * len(new_version_header)}\n\n")

        f.write(release_changelog)
        append_github_contributor(f)
        f.write("\n")

        f.write("".join(old_changelog_data))
示例#6
0
def start_mac_services():
    base.print_info('Restart MySQL Server')
    base.run_process(['mysql.server', 'restart'])
    base.print_info('Start RabbitMQ Server')
    base.run_process(['rabbitmq-server'])
    base.print_info('Start Redis')
    base.run_process(['redis-server'])
示例#7
0
import re
import sys
from datetime import datetime

from base import CHANGELOG_FILE, get_release_info, run_process

sys.path.append(os.path.dirname(__file__))  # noqa

if __name__ == "__main__":
    POETRY_DUMP_VERSION_OUTPUT = re.compile(
        r"Bumping version from \d+\.\d+\.\d+ to (?P<version>\d+\.\d+\.\d+)")
    CHANGELOG_HEADER_SEPARATOR = "========="

    type_, release_changelog = get_release_info()

    output = run_process(["poetry", "version", type_])
    version_match = POETRY_DUMP_VERSION_OUTPUT.match(output)

    if not version_match:
        print("Unable to bump the project version using poetry")
        sys.exit(1)

    new_version = version_match.group("version")
    current_date = datetime.utcnow().strftime("%Y-%m-%d")

    old_changelog_data = []
    header = []

    with open(CHANGELOG_FILE, "r") as f:
        lines = f.readlines()
示例#8
0
import sys
import os

sys.path.append(os.path.dirname(__file__))  # noqa

from base import run_process, RELEASE_FILE


if __name__ == "__main__":
    if not os.path.exists(RELEASE_FILE):
        print("Not releasing a new version because there isn't a RELEASE.md file.")
        run_process(["circleci", "step", "halt"])
示例#9
0
    configure_git()
    version = get_project_version()

    if not version:
        print("Unable to get the current version")
        sys.exit(1)

    tag_exists = (
        check_exit_code(
            [f'git show-ref --tags --quiet --verify -- "refs/tags/{version}"']
        )
        == 0
    )

    if not tag_exists:
        run_process(["git", "tag", version])
        run_process(["git", "push", "--tags"])

    _, changelog = get_release_info()

    project_username = os.environ["CIRCLE_PROJECT_USERNAME"]
    project_reponame = os.environ["CIRCLE_PROJECT_REPONAME"]

    repo_url = f"{project_username}/{project_reponame}"

    gh_release_create(
        repo_url,
        version,
        publish=True,
        name=f"{PROJECT_NAME} {version}",
        body=changelog,
示例#10
0
def publish_release():
    run_process(pub_cmd)
示例#11
0
def build_release():
    run_process(build_cmd)