Skip to content

Commit 1b54bb7

Browse files
committed
Refactor for clean code
1 parent 01b6dd4 commit 1b54bb7

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

vm/tests/gh_workflows/NILayerTests/build_native_image_layer.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,15 @@ def generate_matrix(path_to_data, libs_per_job, delimiter):
4848
'''
4949
Generates a matrix in the format of GAV coordinate tuples (depending on the selected number of libraries per action job) for GitHub actions.
5050
'''
51-
with open(os.path.join(path_to_data, 'popular-maven-libraries.json'), 'r') as f:
52-
data = json.load(f)
53-
with open(os.path.join(path_to_data, 'excluded-popular-maven-libraries.json'), 'r') as f:
54-
exclude_data = json.load(f)
51+
try:
52+
with open(os.path.join(path_to_data, 'popular-maven-libraries.json'), 'r') as f:
53+
data = json.load(f)
54+
with open(os.path.join(path_to_data, 'excluded-popular-maven-libraries.json'), 'r') as f:
55+
exclude_data = json.load(f)
56+
except (FileNotFoundError, json.JSONDecodeError) as e:
57+
print(f"Error loading files: {e}")
58+
sys.exit(1)
59+
5560
matrix = {'coordinates': []}
5661
excluded_coordinates = {f'{lib['group_id']}:{lib['artifact_id']}:{lib['version']}' for lib in exclude_data}
5762
libs_in_job = []
@@ -67,11 +72,14 @@ def generate_matrix(path_to_data, libs_per_job, delimiter):
6772
if len(libs_in_job) > 0:
6873
matrix['coordinates'].append(delimiter.join(libs_in_job))
6974

70-
try:
71-
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
72-
print(f"matrix={json.dumps(matrix)}", file=f)
73-
except IOError:
74-
print("Error: Failed opening GITHUB_OUTPUT. Stopping action...")
75+
try:
76+
github_output = os.getenv('GITHUB_OUTPUT')
77+
if github_output is None:
78+
raise EnvironmentError("GITHUB_OUTPUT environment variable not set")
79+
with open(github_output, 'a') as f:
80+
f.write(f"matrix={json.dumps(matrix)}\n")
81+
except (IOError, EnvironmentError) as e:
82+
print(f"Error writing to GITHUB_OUTPUT: {e}")
7583
sys.exit(1)
7684

7785
def build_layers(native_image_path, coordinates, delimiter):
@@ -87,12 +95,13 @@ def build_layers(native_image_path, coordinates, delimiter):
8795
for gav in coordinates_list:
8896
currDir = os.getcwd()
8997
group_id, artifact_id, version = gav.split(':')
98+
9099
subprocess.run(['mvn', 'dependency:get', f'-Dartifact={gav}', '-Dtransitive=true'])
91100

92-
home_path = str(Path.home())
93-
library_path = os.path.join(home_path, '.m2', 'repository', group_id.replace('.','/'), artifact_id, version)
101+
library_path = os.path.join(Path.home(), '.m2', 'repository', group_id.replace('.','/'), artifact_id, version)
94102
jar_path = os.path.join(library_path, f'{artifact_id}-{version}.jar')
95103
subprocess.run(['cp', f'{os.path.join(library_path, f'{artifact_id}-{version}.pom')}', f'{os.path.join(library_path, 'pom.xml')}'])
104+
96105
if Path(library_path).exists():
97106
subprocess.run(['mkdir', gav])
98107
os.chdir(gav)
@@ -104,6 +113,7 @@ def build_layers(native_image_path, coordinates, delimiter):
104113
subprocess.run(command)
105114
print(f'Command: {' '.join(command)}')
106115
os.chdir('..')
116+
107117
os.chdir(currDir)
108118

109119
if __name__ == '__main__':

0 commit comments

Comments
 (0)