@@ -125,8 +125,24 @@ func callAPIAndExtractField(ctx context.Context, apiURL string) (string, error)
125
125
return dataField , nil
126
126
}
127
127
128
- func setOutput (name , value string ) {
129
- fmt .Printf ("::set-output name=%s::%s\n " , name , value )
128
+ func setOutput (name , value string ) error {
129
+ envFile := os .Getenv ("GITHUB_OUTPUT" )
130
+ f , err := os .OpenFile (envFile , os .O_APPEND | os .O_WRONLY | os .O_CREATE , 0644 )
131
+ if err != nil {
132
+ return fmt .Errorf ("failed to open GITHUB_OUTPUT file: %w" , err )
133
+ }
134
+ defer func (f * os.File ) {
135
+ err := f .Close ()
136
+ if err != nil {
137
+ log .Printf ("Failed to close GITHUB_OUTPUT file: %v" , err )
138
+ }
139
+ }(f )
140
+
141
+ _ , err = fmt .Fprintf (f , "%s=%s\n " , name , value )
142
+ if err != nil {
143
+ return fmt .Errorf ("failed to write to GITHUB_OUTPUT file: %w" , err )
144
+ }
145
+ return nil
130
146
}
131
147
132
148
func main () {
@@ -138,13 +154,21 @@ func main() {
138
154
139
155
// 1. 文本处理
140
156
processedText , wordCount := processText (config .InputText , config .FindWord , config .ReplaceWord )
141
- setOutput ("processed_text" , processedText )
142
- setOutput ("word_count" , strconv .Itoa (wordCount ))
157
+ if err := setOutput ("processed_text" , processedText ); err != nil {
158
+ log .Fatalf ("Failed to set output: %v" , err )
159
+ }
160
+ if err := setOutput ("word_count" , strconv .Itoa (wordCount )); err != nil {
161
+ log .Fatalf ("Failed to set output: %v" , err )
162
+ }
143
163
144
164
// 2. 列表处理
145
165
sum , average := calculateSumAndAverage (config .NumberList )
146
- setOutput ("sum" , strconv .FormatFloat (sum , 'f' , - 1 , 64 ))
147
- setOutput ("average" , strconv .FormatFloat (average , 'f' , - 1 , 64 ))
166
+ if err := setOutput ("sum" , strconv .FormatFloat (sum , 'f' , - 1 , 64 )); err != nil {
167
+ log .Fatalf ("Failed to set output: %v" , err )
168
+ }
169
+ if err := setOutput ("average" , strconv .FormatFloat (average , 'f' , - 1 , 64 )); err != nil {
170
+ log .Fatalf ("Failed to set output: %v" , err )
171
+ }
148
172
149
173
// 3. 文件处理
150
174
if err := readAndAppendToFile (config .InputFile , config .OutputFile , config .AppendText ); err != nil {
@@ -159,5 +183,7 @@ func main() {
159
183
if err != nil {
160
184
log .Fatalf ("API request error: %v" , err )
161
185
}
162
- setOutput ("response_field" , responseField )
186
+ if err := setOutput ("response_field" , responseField ); err != nil {
187
+ log .Fatalf ("Failed to set output: %v" , err )
188
+ }
163
189
}
0 commit comments