Skip to content

Commit

Permalink
Use outer uv in update_stubs.py (#518)
Browse files Browse the repository at this point in the history
  • Loading branch information
KapJI authored Jan 21, 2025
1 parent 5ec7056 commit a32062e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ jobs:
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Generate and publish new packages
run: uv run python update_stubs.py
run: UV_BIN_PATH=$(which uv) uv run python update_stubs.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 16 additions & 9 deletions update_stubs.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ def main() -> int:
)
args = parser.parse_args()

uv_bin = os.environ.get("UV_BIN_PATH")
if uv_bin is None:
LOGGER.error("Path to outer uv binary is not set in UV_BIN_PATH")
return 1

repo_root = Path(__file__).resolve().parent
homeassistant_root = repo_root / "homeassistant_core"

Expand Down Expand Up @@ -77,6 +82,7 @@ def main() -> int:
args.dry_run,
last_pushed_version,
stubs_pypi_versions,
uv_bin,
)
last_pushed_version = version
return 0
Expand Down Expand Up @@ -141,11 +147,12 @@ def create_package(
dry_run: bool,
last_pushed_version: AwesomeVersion,
stubs_pypi_versions: set[AwesomeVersion],
uv_bin: str,
) -> None:
"""Create package for given version and upload it to PyPI."""
LOGGER.info("Creating package for %s...", version)
if last_pushed_version != version:
update_dependency(repo_root, version)
update_dependency(repo_root, version, uv_bin)
checkout_version(homeassistant_root, version)
typed_paths = get_typed_paths(homeassistant_root)
generate_stubs(typed_paths, repo_root)
Expand All @@ -154,15 +161,15 @@ def create_package(
create_commit(repo_root, version)
push_commit(repo_root)
if version not in stubs_pypi_versions:
build_package(repo_root, version)
publish_package(repo_root)
build_package(repo_root, version, uv_bin)
publish_package(repo_root, uv_bin)
gh_repo = get_github_repo("GITHUB_TOKEN")
create_github_release(version, gh_repo)


def update_dependency(repo_root: Path, version: AwesomeVersion) -> None:
def update_dependency(repo_root: Path, version: AwesomeVersion, uv_bin: str) -> None:
"""Update version of homeassistant dependency."""
args = ["uv", "add", f"homeassistant=={version}"]
args = [uv_bin, "add", f"homeassistant=={version}"]
if version.modifier is not None:
args.append("--prerelease=allow")
subprocess.run(args, cwd=repo_root, check=True)
Expand All @@ -175,11 +182,11 @@ def checkout_version(homeassistant_root: Path, version: AwesomeVersion) -> None:
)


def build_package(repo_root: Path, version: AwesomeVersion) -> None:
def build_package(repo_root: Path, version: AwesomeVersion, uv_bin: str) -> None:
"""Build new package with uv."""
LOGGER.info("Building package...")
subprocess.run(["git", "tag", version.string], cwd=repo_root, check=True)
subprocess.run(["uv", "build"], cwd=repo_root, check=True)
subprocess.run([uv_bin, "build"], cwd=repo_root, check=True)
subprocess.run(
["git", "tag", "--delete", version.string], cwd=repo_root, check=True
)
Expand Down Expand Up @@ -223,12 +230,12 @@ def create_github_release(version: AwesomeVersion, gh_repo: Repository) -> None:
)


def publish_package(repo_root: Path) -> None:
def publish_package(repo_root: Path, uv_bin: str) -> None:
"""Publish new package on PyPI."""
LOGGER.info("Publishing package...")
subprocess.run(
[
"uv",
uv_bin,
"publish",
],
cwd=repo_root,
Expand Down
1 change: 0 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit a32062e

Please sign in to comment.