Skip to content

Commit e718a1f

Browse files
committed
feat: print error log in github action
1 parent 4a509ea commit e718a1f

File tree

3 files changed

+31
-10
lines changed

3 files changed

+31
-10
lines changed

.pre-commit-config.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ repos:
1717
rev: 24.10.0
1818
hooks:
1919
- id: black
20-
# FIXME: main.py:109: error: Item "None" of "str | None" has no attribute "split" [union-attr]
21-
# - repo: https://github.com/pre-commit/mirrors-mypy
22-
# rev: v1.12.0
23-
# hooks:
24-
# - id: mypy
20+
- repo: https://github.com/pre-commit/mirrors-mypy
21+
rev: v1.12.0
22+
hooks:
23+
- id: mypy
2524
- repo: https://github.com/codespell-project/codespell
2625
rev: v2.3.0
2726
hooks:

README.md

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

9191
> [!IMPORTANT]
9292
> `merge-base` is an experimental feature. by default it's disable.
93-
>
93+
>
9494
> To use this feature, you need fetch all history for all branches by setting `fetch-depth: 0` in `actions/checkout`.
9595

9696
### `dry-run`

main.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import sys
44
import subprocess
55
import re
6-
from github import Github
6+
from github import Github # type: ignore
77

88

99
# Constants for message titles
@@ -52,7 +52,8 @@ def run_commit_check() -> int:
5252
args = [
5353
arg
5454
for arg, value in zip(
55-
args, [MESSAGE, BRANCH, AUTHOR_NAME, AUTHOR_EMAIL, COMMIT_SIGNOFF, MERGE_BASE]
55+
args,
56+
[MESSAGE, BRANCH, AUTHOR_NAME, AUTHOR_EMAIL, COMMIT_SIGNOFF, MERGE_BASE],
5657
)
5758
if value == "true"
5859
]
@@ -104,7 +105,12 @@ def add_pr_comments() -> int:
104105
try:
105106
token = os.getenv("GITHUB_TOKEN")
106107
repo_name = os.getenv("GITHUB_REPOSITORY")
107-
pr_number = os.getenv("GITHUB_REF").split("/")[-2]
108+
pr_number = os.getenv("GITHUB_REF")
109+
if pr_number is not None:
110+
pr_number = pr_number.split("/")[-2]
111+
else:
112+
# Handle the case where GITHUB_REF is not set
113+
raise ValueError("GITHUB_REF environment variable is not set")
108114

109115
# Initialize GitHub client
110116
g = Github(token)
@@ -157,6 +163,21 @@ def add_pr_comments() -> int:
157163
return 1
158164

159165

166+
def log_error_and_exit(failure_title, result_text, ret_code):
167+
"""
168+
Logs an error message to GitHub Actions and exits with the specified return code.
169+
170+
Args:
171+
failure_title (str): The title of the failure message.
172+
result_text (str): The detailed result text to include in the error message.
173+
ret_code (int): The return code to exit with.
174+
"""
175+
if result_text:
176+
error_message = f"{failure_title}\n```\n{result_text}\n```"
177+
print(f"::error::{error_message}")
178+
sys.exit(ret_code)
179+
180+
160181
def main():
161182
"""Main function to run commit-check, add job summary and post PR comments."""
162183
log_env_vars()
@@ -169,7 +190,8 @@ def main():
169190
if DRY_RUN == "true":
170191
ret_code = 0
171192

172-
sys.exit(ret_code)
193+
result_text = read_result_file()
194+
log_error_and_exit(FAILURE_TITLE, result_text, ret_code)
173195

174196

175197
if __name__ == "__main__":

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy