Skip to content

Commit

Permalink
feat: add commit hash and branch in states.json
Browse files Browse the repository at this point in the history
  • Loading branch information
saxenabhishek committed Mar 10, 2022
1 parent d178b08 commit 9004e1d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
4 changes: 2 additions & 2 deletions bench/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ def install_resolved_deps(
for repo_name, app in reversed(resolution.items()):
existing_dir, _ = check_existing_dir(bench_path, repo_name)
if existing_dir:
if bench.apps.states[repo_name]["resolution"] != app.tag:
if bench.apps.states[repo_name]["resolution"]["branch"] != app.tag:
click.secho(
f"Incompatible version of {repo_name} is already installed",
fg="yellow",
Expand Down Expand Up @@ -500,7 +500,7 @@ def install_app(
bench.run("yarn install", cwd=app_path)

bench.apps.sync()
bench.apps.update_apps_states(app, tag)
bench.apps.update_apps_states(app, branch=tag)

if not skip_assets:
build_assets(bench_path=bench_path, app=app)
Expand Down
23 changes: 20 additions & 3 deletions bench/bench.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# imports - standard imports
import subprocess
import functools
import os
import shutil
import json
import sys
import logging
from typing import List, MutableSequence, TYPE_CHECKING
from typing import List, MutableSequence, TYPE_CHECKING, Union

# imports - module imports
import bench
Expand Down Expand Up @@ -159,6 +160,7 @@ class BenchApps(MutableSequence):
def __init__(self, bench: Bench):
self.bench = bench
self.states_path = os.path.join(self.bench.name, "sites", "apps_states.json")
self.apps_path = os.path.join(self.bench.name, "apps")
self.initialize_apps()
self.set_states()

Expand All @@ -169,7 +171,7 @@ def set_states(self):
except FileNotFoundError:
self.states = {}

def update_apps_states(self, app_name: str = None, resolution: str = None):
def update_apps_states(self, app_name: Union[str, None] = None, branch: Union[str, None] = None):
apps_to_remove = []
for app in self.states:
if app not in self.apps:
Expand All @@ -180,8 +182,23 @@ def update_apps_states(self, app_name: str = None, resolution: str = None):

if app_name:
version = get_current_version(app_name, self.bench.name)

app_dir = os.path.join(self.apps_path, app_name)
if not branch:
branch = (
subprocess
.check_output("git rev-parse --abbrev-ref HEAD", shell=True, cwd=app_dir)
.decode("utf-8")
.rstrip()
)

commit_hash = subprocess.check_output(f"git rev-parse {branch}", shell=True, cwd=app_dir).decode("utf-8").rstrip()

self.states[app_name] = {
"resolution": resolution,
"resolution": {
"commit_hash":commit_hash,
"branch": branch
},
"version": version,
}

Expand Down

0 comments on commit 9004e1d

Please sign in to comment.