Skip to content

Commit

Permalink
ci: fix easy-install.py test (#1408)
Browse files Browse the repository at this point in the history
* ci: fix easy-install.py test

related to frappe/frappe_docker#1032

* ci: fix easy-install.py

patched bench removed and frappe-bench installed
--no-mariadb-socket required for new-site

* fix: remove frappe version from .env

* feat(easy-install): option to set version

Co-authored-by: Ankush Menat <ankush@frappe.io>
  • Loading branch information
revant and ankush committed Jan 16, 2023
1 parent 3419705 commit b3ad10b
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions easy-install.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,21 @@ def get_from_env(dir, file) -> Dict:
return env_vars


def write_to_env(wd: str, site: str, db_pass: str, admin_pass: str, email: str) -> None:
def write_to_env(
wd: str,
site: str,
db_pass: str,
admin_pass: str,
email: str,
erpnext_version: str = None,
) -> None:
site_name = site or ""
example_env = get_from_env(wd, "example.env")
erpnext_version = erpnext_version or example_env['ERPNEXT_VERSION']
with open(os.path.join(wd, ".env"), "w") as f:
f.writelines(
[
f"FRAPPE_VERSION={example_env['FRAPPE_VERSION']}\n", # Defaults to latest version of Frappe
f"ERPNEXT_VERSION={example_env['ERPNEXT_VERSION']}\n", # defaults to latest version of ERPNext
f"ERPNEXT_VERSION={erpnext_version}\n", # defaults to latest version of ERPNext
f"DB_PASSWORD={db_pass}\n",
"DB_HOST=db\n",
"DB_PORT=3306\n",
Expand Down Expand Up @@ -107,7 +114,7 @@ def check_repo_exists() -> bool:
return os.path.exists(os.path.join(os.getcwd(), "frappe_docker"))


def setup_prod(project: str, sitename: str, email: str) -> None:
def setup_prod(project: str, sitename: str, email: str, version: str = None) -> None:
if check_repo_exists():
compose_file_name = os.path.join(os.path.expanduser("~"), f"{project}-compose.yml")
docker_repo_path = os.path.join(os.getcwd(), "frappe_docker")
Expand All @@ -122,7 +129,7 @@ def setup_prod(project: str, sitename: str, email: str) -> None:
if not os.path.exists(os.path.join(docker_repo_path, ".env")):
admin_pass = generate_pass()
db_pass = generate_pass(9)
write_to_env(docker_repo_path, sitename, db_pass, admin_pass, email)
write_to_env(docker_repo_path, sitename, db_pass, admin_pass, email, version)
cprint(
"\nA .env file is generated with basic configs. Please edit it to fit to your needs \n",
level=3,
Expand Down Expand Up @@ -150,8 +157,6 @@ def setup_prod(project: str, sitename: str, email: str) -> None:
"overrides/compose.redis.yaml",
# "-f", "overrides/compose.noproxy.yaml", TODO: Add support for local proxying without HTTPs
"-f",
"overrides/compose.erpnext.yaml",
"-f",
"overrides/compose.https.yaml",
"--env-file",
".env",
Expand Down Expand Up @@ -202,6 +207,7 @@ def setup_prod(project: str, sitename: str, email: str) -> None:
"bench",
"new-site",
sitename,
"--no-mariadb-socket",
"--db-root-password",
db_pass,
"--admin-password",
Expand All @@ -220,7 +226,7 @@ def setup_prod(project: str, sitename: str, email: str) -> None:
else:
install_docker()
clone_frappe_docker_repo()
setup_prod(project, sitename, email) # Recursive
setup_prod(project, sitename, email, version) # Recursive


def setup_dev_instance(project: str):
Expand Down Expand Up @@ -306,6 +312,7 @@ def install_docker():
parser.add_argument(
"--email", help="Add email for the SSL.", required="--prod" in sys.argv
)
parser.add_argument("-v", "--version", help="ERPNext version to install, defaults to latest stable")
args = parser.parse_args()
if args.dev:
cprint("\nSetting Up Development Instance\n", level=2)
Expand All @@ -317,6 +324,6 @@ def install_docker():
if "example.com" in args.email:
cprint("Emails with example.com not acceptable", level=1)
sys.exit(1)
setup_prod(args.project, args.sitename, args.email)
setup_prod(args.project, args.sitename, args.email, args.version)
else:
parser.print_help()

0 comments on commit b3ad10b

Please sign in to comment.