Skip to content

Commit

Permalink
Updates build-gridappsd-container script to use python
Browse files Browse the repository at this point in the history
  • Loading branch information
craig8 committed Jan 10, 2024
1 parent faa2d4e commit 4879042
Showing 1 changed file with 63 additions and 5 deletions.
68 changes: 63 additions & 5 deletions build-gridappsd-container
Original file line number Diff line number Diff line change
@@ -1,7 +1,65 @@
docker pull gridappsd/gridappsd_base:master
"""
Script for building the gridappsd-container.

./gradlew clean
rm -rf gov.pnnl.goss/gridappsd/generated
./gradlew export
This script pulls the gridappsd_base docker image, cleans the project, exports the project, and builds the gridappsd-container.

docker build --no-cache --network=host -t gridappsd:local .
Usage:
python build-gridappsd-container.py <base_version> [--output_version <output_version>]

Arguments:
base_version (str): The version of the gridappsd_base docker image.
output_version (str, optional): The output tag version for local development. Default is "local".

Example:
python build-gridappsd-container.py 2.3.0 --output_version 2.3.1

"""

import argparse
import subprocess
import shutil


def execute(cmd: str | list[str]):
"""
Executes a command in the shell and prints the output.

Args:
cmd (str | list[str]): The command to execute. If a string, it will be split into a list of arguments.

Raises:
subprocess.CalledProcessError: If the command returns a non-zero exit code.

"""
if isinstance(cmd, str):
cmd = cmd.split(" ")

with subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) as p:
for line in iter(p.stdout.readline, ""):
if line.strip():
print(line.strip())

p.wait()
if p.returncode:
raise subprocess.CalledProcessError(p.returncode, cmd=" ".join(cmd))



if __name__ == '__main__':

parser = argparse.ArgumentParser()

parser.add_argument("base_version",
help="The gridappsd_base docker image version")
parser.add_argument("--output_version", default="local",
help="The output tag version for local development")

opts = parser.parse_args()

base_version = opts.base_version

execute(f"docker pull gridappsd/gridappsd_base:{opts.base_version}")
execute("./gradlew clean")
shutil.rmtree("gov.pnnl.goss/gridappsd/generated", ignore_errors=True)
execute("./gradlew export")
execute(f"docker build --no-cache --network=host -t gridappsd:{opts.output_version} .")

0 comments on commit 4879042

Please sign in to comment.