Skip to content

Commit 97ba853

Browse files
committed
use all commits from db to update
Signed-off-by: habibayassin <[email protected]>
1 parent f0ecc67 commit 97ba853

File tree

3 files changed

+28
-9
lines changed

3 files changed

+28
-9
lines changed

.github/workflows/github-actions-update-rules.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ jobs:
3030
echo ${{ github.event_name }}
3131
echo ${{ github.event.client_payload.type }}
3232
if [[ "${{ github.event_name }}" == "repository_dispatch" && "${{ github.event.client_payload.type }}" == "overwrite" ]]; then
33-
python flow/util/updateRules.py --keyFile "${CREDS_FILE}" --apiURL ${API_BASE_URL} --overwrite
33+
python flow/util/updateRules.py --keyFile "${CREDS_FILE}" --apiURL ${API_BASE_URL} --commitSHA ${{ github.event.client_payload.commitsha }} --overwrite
3434
else
35-
python flow/util/updateRules.py --keyFile "${CREDS_FILE}" --apiURL ${API_BASE_URL}
35+
python flow/util/updateRules.py --keyFile "${CREDS_FILE}" --apiURL ${API_BASE_URL} --commitSHA ${{ github.event.client_payload.commitsha }}
3636
fi
3737
- name: Push updated rules
3838
id: remote-update

flow/util/genRuleFile.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,23 @@ def get_golden(platform, design, api_base_url):
2727
print(f"An error occurred: {str(e)}")
2828
return None, f"An error occurred: {str(e)}"
2929

30+
def get_metrics(commitSHA, platform, design, api_base_url):
31+
try:
32+
response = requests.get(api_base_url+f"/commit?commitSHA={commitSHA}&platform={platform}&design={design}&variant=base")
33+
34+
# Check if the request was successful (status code 200)
35+
if response.status_code == 200 and "error" not in response.json():
36+
# Parse the JSON response
37+
data = response.json()
38+
39+
return data, None
40+
else:
41+
print("API request failed")
42+
return None, "API request failed"
43+
except Exception as e:
44+
print(f"An error occurred: {str(e)}")
45+
return None, f"An error occurred: {str(e)}"
46+
3047
def update_rules(designDir, variant, golden_metrics, overwrite):
3148
if overwrite:
3249
gen_rule_file(designDir, # design directory
@@ -280,7 +297,7 @@ def gen_rule_file(design_dir, update, tighten, failing, variant, golden_metrics=
280297

281298
if update and old_rule['value'] != rule_value:
282299
UPDATE = True
283-
change_str += format.format_str.format(field, old_rule['value'],
300+
change_str += format_str.format(field, old_rule['value'],
284301
rule_value, 'Updating')
285302

286303
if not UPDATE:

flow/util/updateRules.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
parser.add_argument('--keyFile', type=str, help='Service account credentials key file')
2020
parser.add_argument('--overwrite', action='store_true', default=False, help='Overwrite the golden metrics')
2121
parser.add_argument('--apiURL', type=str, default="http://localhost:80", help='Set API Base URL to get golden metrics')
22+
parser.add_argument('--commitSHA', type=str, default="", help='commit for the metrics used to update the rules')
2223

2324
# Parse the arguments
2425
args = parser.parse_args()
@@ -44,15 +45,16 @@
4445
test = '{} {}'.format(platform, design)
4546
dataFile = os.path.join(designsDir, runFilename)
4647
if os.path.exists(dataFile) and (platform != 'sky130hd_fakestack' or platform != 'src'):
47-
golden_metrics, error_golden_metrics = get_golden(platform, # platform
48-
design, # design
49-
api_base_url # backend url
50-
)
51-
if error_golden_metrics:
48+
metrics, error_metrics = get_metrics(args.commitSHA # commit
49+
platform, # platform
50+
design, # design
51+
api_base_url # backend url
52+
)
53+
if error_metrics:
5254
print("failed to update rule for", platform, design)
5355
continue
5456
update_rules(designsDir, # design directory
5557
"base", # variant
56-
golden_metrics, # metrics needed for update, default is {} in case of file
58+
metrics, # metrics needed for update, default is {} in case of file
5759
args.overwrite # overwrite flag, default is false
5860
)

0 commit comments

Comments
 (0)