Skip to content

Commit 8898835

Browse files
authored
[SDK generation pipeline] optimize log (#36720)
* optimize log * add hint message * update stderr * update log format * update log format * update hint message * update * update
1 parent 9b8e099 commit 8898835

File tree

7 files changed

+68
-28
lines changed

7 files changed

+68
-28
lines changed

swagger_to_sdk_config.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66
},
77
"initOptions": {
88
"initScript": {
9-
"path": "sh scripts/automation_init.sh"
9+
"path": "sh scripts/automation_init.sh",
10+
"stderr": {
11+
"showInComment": false
12+
}
1013
}
1114
},
1215
"generateOptions": {
1316
"generateScript": {
1417
"path": "sh scripts/automation_generate.sh",
15-
"stderr": {
16-
"showInComment": true
17-
},
1818
"stdout": {
19-
"showInComment": "^\\[Autorest\\]"
19+
"showInComment": "(.*\\[ERROR\\]\\s*).*"
2020
}
2121
},
2222
"parseGenerateOutput": true

tools/azure-sdk-tools/packaging_tools/generate_sdk.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
import argparse
23
import logging
34
from pathlib import Path
@@ -15,6 +16,11 @@
1516
get_repo_tag_meta,
1617
)
1718

19+
logging.basicConfig(
20+
stream=sys.stdout,
21+
format="%(asctime)s [%(levelname)s] %(message)s",
22+
datefmt="%Y-%m-%d %X",
23+
)
1824
_LOGGER = logging.getLogger(__name__)
1925

2026

tools/azure-sdk-tools/packaging_tools/generate_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from ci_tools.git_tools import get_add_diff_file_list
99
from pathlib import Path
10-
from subprocess import check_output, CalledProcessError, check_call, getoutput
10+
from subprocess import check_output, CalledProcessError, check_call
1111
from typing import Dict, Any
1212
from glob import glob
1313
import yaml

tools/azure-sdk-tools/packaging_tools/package_utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ def change_log_generate(package_name, last_version, tag_is_stable: bool = False,
7171
def extract_breaking_change(changelog):
7272
log = changelog.split("\n")
7373
breaking_change = []
74-
idx = log.index("### Breaking Changes")
74+
idx = -1
75+
try:
76+
idx = log.index("### Breaking Changes")
77+
except ValueError:
78+
pass
7579
if idx > -1:
7680
for i in range(idx + 1, len(log)):
7781
if log[i].find("###") > -1:

tools/azure-sdk-tools/packaging_tools/sdk_generator.py

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
from typing import List, Dict, Any
23
import argparse
34
import json
@@ -35,6 +36,11 @@
3536
)
3637
from .conf import CONF_NAME
3738

39+
logging.basicConfig(
40+
stream=sys.stdout,
41+
format="%(asctime)s [%(levelname)s] %(message)s",
42+
datefmt="%Y-%m-%d %X",
43+
)
3844
_LOGGER = logging.getLogger(__name__)
3945

4046

@@ -275,25 +281,37 @@ def main(generate_input, generate_output):
275281

276282
for input_readme in readme_files:
277283
_LOGGER.info(f"[CODEGEN]({input_readme})codegen begin")
278-
if "resource-manager" in input_readme:
279-
relative_path_readme = str(Path(spec_folder, input_readme))
280-
update_metadata_for_multiapi_package(spec_folder, input_readme)
281-
del_outdated_files(relative_path_readme)
282-
config = generate(
283-
CONFIG_FILE,
284-
sdk_folder,
285-
[],
286-
relative_path_readme,
287-
spec_folder,
288-
force_generation=True,
289-
python_tag=python_tag,
290-
)
291-
elif "data-plane" in input_readme:
292-
config = gen_dpg(input_readme, data.get("autorestConfig", ""), dpg_relative_folder(spec_folder))
293-
else:
294-
del_outdated_generated_files(str(Path(spec_folder, input_readme)))
295-
config = gen_typespec(input_readme, spec_folder, data["headSha"], data["repoHttpsUrl"])
296-
package_names = get_package_names(sdk_folder)
284+
try:
285+
if "resource-manager" in input_readme:
286+
relative_path_readme = str(Path(spec_folder, input_readme))
287+
update_metadata_for_multiapi_package(spec_folder, input_readme)
288+
del_outdated_files(relative_path_readme)
289+
config = generate(
290+
CONFIG_FILE,
291+
sdk_folder,
292+
[],
293+
relative_path_readme,
294+
spec_folder,
295+
force_generation=True,
296+
python_tag=python_tag,
297+
)
298+
elif "data-plane" in input_readme:
299+
config = gen_dpg(input_readme, data.get("autorestConfig", ""), dpg_relative_folder(spec_folder))
300+
else:
301+
del_outdated_generated_files(str(Path(spec_folder, input_readme)))
302+
config = gen_typespec(input_readme, spec_folder, data["headSha"], data["repoHttpsUrl"])
303+
package_names = get_package_names(sdk_folder)
304+
except Exception as e:
305+
_LOGGER.error(f"fail to generate sdk for {input_readme}: {str(e)}")
306+
for hint_message in [
307+
"======================================= Whant Can I do ========================================================================",
308+
"If you are from service team, please first check if the failure happens only to Python automation, or for all SDK automations. ",
309+
"If it happens for all SDK automations, please double check your Swagger / Typespec, and check whether there is error in ModelValidation and LintDiff. ",
310+
"If it happens to Python alone, you can open an issue to https://github.com/Azure/autorest.python/issues. Please include the link of this Pull Request in the issue.",
311+
"===============================================================================================================================",
312+
]:
313+
_LOGGER.error(hint_message)
314+
raise e
297315
_LOGGER.info(f"[CODEGEN]({input_readme})codegen end. [(packages:{str(package_names)})]")
298316

299317
# folder_name: "sdk/containerservice"; package_name: "azure-mgmt-containerservice"
@@ -330,7 +348,7 @@ def main(generate_input, generate_output):
330348
input_readme,
331349
)
332350
except Exception as e:
333-
_LOGGER.info(f"fail to update meta: {str(e)}")
351+
_LOGGER.error(f"fail to update meta: {str(e)}")
334352

335353
# Setup package locally
336354
check_call(

tools/azure-sdk-tools/packaging_tools/sdk_package.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
import argparse
23
import json
34
import logging
@@ -7,6 +8,11 @@
78

89
from .package_utils import create_package, change_log_generate, extract_breaking_change
910

11+
logging.basicConfig(
12+
stream=sys.stdout,
13+
format="%(asctime)s [%(levelname)s] %(message)s",
14+
datefmt="%Y-%m-%d %X",
15+
)
1016
_LOGGER = logging.getLogger(__name__)
1117

1218

tools/azure-sdk-tools/packaging_tools/swaggertosdk/autorest_tools.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1+
import sys
12
import json
23
import logging
34
import os.path
45
from pathlib import Path
56
import shutil
67
import subprocess
78

9+
logging.basicConfig(
10+
stream=sys.stdout,
11+
format="%(asctime)s [%(levelname)s] %(message)s",
12+
datefmt="%Y-%m-%d %X",
13+
)
814
_LOGGER = logging.getLogger(__name__)
915

1016

@@ -145,7 +151,7 @@ def run_command():
145151
if process.returncode:
146152
# print necessary error info which will be displayed in swagger pr
147153
for i in range(-min(len(output_buffer), 20), 0):
148-
print(f"[Autorest] {output_buffer[i]}")
154+
_LOGGER.error(output_buffer[i])
149155
raise subprocess.CalledProcessError(process.returncode, cmd_line, output)
150156
return output
151157

0 commit comments

Comments
 (0)