mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 17:37:37 -02:30
Add error handling to scm_version.py script (#13521)
raise Exception in the case that return code is non-zero this approach has shown itself to be the most consistently reliable across multiple ecosystems
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
import traceback
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from setuptools_scm import get_version
|
from setuptools_scm import get_version
|
||||||
@@ -9,8 +8,13 @@ except ModuleNotFoundError:
|
|||||||
sys.stderr.write("Unable to import setuptools-scm, attempting to install now...\n")
|
sys.stderr.write("Unable to import setuptools-scm, attempting to install now...\n")
|
||||||
|
|
||||||
os.environ['PIP_DISABLE_PIP_VERSION_CHECK'] = '1'
|
os.environ['PIP_DISABLE_PIP_VERSION_CHECK'] = '1'
|
||||||
subprocess.check_output([sys.executable, '-m', 'ensurepip'])
|
COMMANDS = ([sys.executable, '-m', 'ensurepip'], [sys.executable, '-m', 'pip', 'install', 'setuptools-scm'])
|
||||||
subprocess.check_output([sys.executable, '-m', 'pip', 'install', 'setuptools-scm'])
|
for cmd in COMMANDS:
|
||||||
|
# capture_output because we only want to print version to stdout if successful
|
||||||
|
result = subprocess.run(cmd, capture_output=True)
|
||||||
|
if result.returncode:
|
||||||
|
# failed, we have no version, so print output so that users can debug
|
||||||
|
raise Exception(f'\nCommand `{" ".join(cmd)}` failed (rc={result.returncode}).\n\nstdout:\n{result.stdout}\n\nstderr:\n{result.stderr}')
|
||||||
|
|
||||||
from setuptools_scm import get_version
|
from setuptools_scm import get_version
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user