@@ -43,7 +43,6 @@ def __init__(self) -> None:
4343 self .location : str = os .environ .get ("INPUT_LOCATION" , default = "body" )
4444 self .title : str = os .environ .get ("INPUT_TITLE" , default = "[Rr]elease [Nn]otes:" )
4545 self .skip_labels : list [str ] = os .environ .get ("INPUT_SKIP_LABELS" , default = "" )
46- self .fails_on_error : bool = os .environ .get ("INPUT_FAILS_ON_ERROR" , "true" ).lower () == "true"
4746
4847 self .__validate_inputs ()
4948
@@ -65,19 +64,18 @@ def run(self) -> None:
6564 labels : list [str ] = [label .get ("name" , "" ) for label in pr_data .get ("labels" , [])]
6665 if self .skip_labels in labels :
6766 logger .info ("Skipping release notes check because '%s' label is present." , self .skip_labels )
68- self .write_output ("true" )
6967 sys .exit (0 ) # Exiting with code 0 indicates success but the action is skipped.
7068
7169 # check release notes presence in defined location
7270 pr_body = pr_data .get ("body" , "" )
7371 if len (pr_body .strip ()) == 0 :
7472 logger .error ("Error: Pull request description is empty." )
75- self . handle_failure ( )
73+ sys . exit ( 0 )
7674
7775 # Check if release notes tag is present
7876 if not re .search (self .title , pr_body ):
7977 logger .error ("Error: Release notes title '%s' not found in pull request body." , self .title )
80- self . handle_failure ( )
78+ sys . exit ( 0 )
8179
8280 # Get line index of the release notes tag
8381 lines = pr_body .split ("\n " )
@@ -90,81 +88,62 @@ def run(self) -> None:
9088 # Check if there is content after the release notes tag
9189 if release_notes_start_index is None or release_notes_start_index >= len (lines ):
9290 logger .error ("Error: No content found after the release notes tag." )
93- self . handle_failure ( )
91+ sys . exit ( 1 )
9492
9593 # Check if there is a bullet list directly under the release notes tag
9694 text_below_release_notes = lines [release_notes_start_index :]
9795 if not text_below_release_notes or not text_below_release_notes [0 ].strip ().startswith (("-" , "+" , "*" )):
9896 logger .error ("Error: No bullet list found directly under release notes tag." )
99- self . handle_failure ( )
97+ sys . exit ( 1 )
10098
101- self .write_output ("true" )
10299 logger .info ("Release Notes detected." )
103100 sys .exit (0 )
104101
105- def write_output (self , valid_value : str ) -> None :
106- """
107- Write the output to the file specified by the GITHUB_OUTPUT environment variable.
108-
109- @param valid_value: The value to write to the output file.
110- @return: None
111- """
112- output_file = os .environ .get ("GITHUB_OUTPUT" , default = "output.txt" )
113- with open (output_file , "a" , encoding = "utf-8" ) as fh :
114- print (f"valid={ valid_value } " , file = fh )
115-
116- def handle_failure (self ) -> None :
117- """
118- Handle the failure of the action.
119-
120- @return: None
121- """
122- self .write_output ("false" )
123- if self .fails_on_error :
124- sys .exit (1 )
125- else :
126- sys .exit (0 )
127-
128102 def __validate_inputs (self ) -> None :
129103 """
130104 Validate the required inputs. When the inputs are not valid, the action will fail.
131105
132106 @return: None
133107 """
108+ error_detected = False
109+
134110 if len (self .github_token ) == 0 :
135111 logger .error ("Failure: GITHUB_TOKEN is not set correctly." )
136- self . handle_failure ()
112+ error_detected = True
137113
138114 value = os .environ .get ("INPUT_PR_NUMBER" , default = "" )
139115 if len (value ) == 0 :
140116 logger .error ("Failure: PR_NUMBER is not set correctly." )
141- self . handle_failure ()
117+ error_detected = True
142118
143119 if not value .isdigit ():
144120 logger .error ("Failure: PR_NUMBER is not a valid number." )
145- self . handle_failure ()
121+ error_detected = True
146122
147123 value = os .environ .get ("INPUT_GITHUB_REPOSITORY" , default = "" )
148124 if len (value ) == 0 :
149125 logger .error ("Failure: GITHUB_REPOSITORY is not set correctly." )
150- self . handle_failure ()
126+ error_detected = True
151127
152128 if value .count ("/" ) != 1 :
153129 logger .error ("Failure: GITHUB_REPOSITORY is not in the correct format." )
154- self . handle_failure ()
155-
156- if len (value .split ("/" )[0 ]) == 0 or len (value .split ("/" )[1 ]) == 0 :
157- logger .error ("Failure: GITHUB_REPOSITORY is not in the correct format." )
158- self . handle_failure ()
130+ error_detected = True
131+ else :
132+ if len (value .split ("/" )[0 ]) == 0 or len (value .split ("/" )[1 ]) == 0 :
133+ logger .error ("Failure: GITHUB_REPOSITORY is not in the correct format." )
134+ error_detected = True
159135
160136 if len (self .location ) == 0 :
161137 logger .error ("Failure: LOCATION is not set correctly." )
162- self . handle_failure ()
138+ error_detected = True
163139
164140 if self .location not in ["body" ]:
165141 logger .error ("Failure: LOCATION is not one of the supported values." )
166- self . handle_failure ()
142+ error_detected = True
167143
168144 if len (self .title ) == 0 :
169145 logger .error ("Failure: TITLE is not set correctly." )
170- self .handle_failure ()
146+ error_detected = True
147+
148+ if error_detected :
149+ sys .exit (1 )
0 commit comments