| | import subprocess |
| | import sys |
| | from pathlib import Path |
| |
|
| | import nox |
| |
|
| | nox.options.reuse_existing_virtualenvs = True |
| |
|
| |
|
| | @nox.session() |
| | def run(session): |
| | session.install(".") |
| | session.run("python", "-m", "pyxtermjs", *session.posargs) |
| |
|
| |
|
| | def has_changes(): |
| | status = ( |
| | subprocess.run( |
| | "git status --porcelain", shell=True, check=True, stdout=subprocess.PIPE |
| | ) |
| | .stdout.decode() |
| | .strip() |
| | ) |
| | return len(status) > 0 |
| |
|
| |
|
| | def on_master_no_changes(session): |
| | if has_changes(): |
| | session.error("All changes must be committed or removed before publishing") |
| | |
| | |
| | |
| |
|
| |
|
| | def get_branch(): |
| | return ( |
| | subprocess.run( |
| | "git rev-parse --abbrev-ref HEAD", |
| | shell=True, |
| | check=True, |
| | stdout=subprocess.PIPE, |
| | ) |
| | .stdout.decode() |
| | .strip() |
| | ) |
| |
|
| |
|
| | @nox.session() |
| | def build(session): |
| | session.install("--upgrade", "pip") |
| | session.install("build") |
| | session.run("rm", "-rf", "dist", "build", external=True) |
| | session.run("python", "-m", "build") |
| |
|
| |
|
| | @nox.session() |
| | def publish(session): |
| | on_master_no_changes(session) |
| | session.install("--upgrade", "pip") |
| | session.install("twine") |
| | build(session) |
| | print("REMINDER: Has the changelog been updated?") |
| | session.run("python", "-m", "twine", "upload", "dist/*") |
| |
|