@@ -26,11 +26,19 @@ jobs:
2626 java-version : ' 8'
2727 distribution : ' temurin'
2828
29+ - name : Create Logs Directory
30+ run : mkdir -p logs
31+
2932 - name : Update Version in pom.xml
3033 run : mvn versions:set -DnewVersion="${{ env.smart-doc-version }}" -DgenerateBackupPoms=false
3134
3235 - name : Build and Install Plugin
33- run : mvn install
36+ run : |
37+ mvn install 2>&1 | tee logs/build.log
38+ if grep -E "\[ERROR\]" logs/build.log; then
39+ cat logs/build.log
40+ exit 1
41+ fi
3442
3543 - name : Upload Plugin Artifact
3644 id : upload-artifact
4048 path : ~/.m2/repository/com/ly/smart-doc
4149 if-no-files-found : error
4250
51+ - name : Upload Build Log
52+ if : failure() # Only run if previous steps fail
53+ uses : actions/upload-artifact@v4
54+ with :
55+ name : error-log-smart-doc-build
56+ path : logs/build.log
57+
4358 maven-plugin-build :
4459 needs : build
4560 runs-on : ubuntu-latest
6075 java-version : ' 8'
6176 distribution : ' temurin'
6277
78+ - name : Create Logs Directory
79+ run : mkdir -p logs
80+
6381 - name : Download Artifact
6482 uses : actions/download-artifact@v4
6583 with :
7997 mvn versions:set-property -Dproperty="smart-doc.version" -DnewVersion="${{ env.smart-doc-version }}" -DgenerateBackupPoms=false
8098
8199 - name : Build and Install
82- run : mvn -DskipTests=true install
100+ run : |
101+ mvn -DskipTests=true install 2>&1 | tee logs/install-plugin.log
102+ if grep -E "\[ERROR\]" logs/install-plugin.log; then
103+ cat logs/install-plugin.log
104+ exit 1
105+ fi
83106
84107 - name : Upload Plugin Artifact
85108 id : upload-artifact
@@ -89,6 +112,13 @@ jobs:
89112 path : ~/.m2/repository/com/ly/smart-doc
90113 if-no-files-found : error
91114
115+ - name : Upload Plugin Build Log
116+ if : failure() # Only run if previous steps fail
117+ uses : actions/upload-artifact@v4
118+ with :
119+ name : error-log-maven-plugin-build
120+ path : logs/install-plugin.log
121+
92122 generate-api-docs :
93123 needs : maven-plugin-build
94124 runs-on : ubuntu-latest
@@ -112,6 +142,9 @@ jobs:
112142 java-version : ' 17'
113143 distribution : ' temurin'
114144
145+ - name : Create Logs Directory
146+ run : mkdir -p logs
147+
115148 - name : Download Artifact
116149 uses : actions/download-artifact@v4
117150 with :
@@ -131,35 +164,73 @@ jobs:
131164 mvn versions:set-property -Dproperty="smart-doc.version" -DnewVersion="${{ env.smart-doc-version }}" -DgenerateBackupPoms=false
132165
133166 - name : Build and Install Example Project
134- run : mvn -DskipTests=true install
167+ run : |
168+ mvn -DskipTests=true install 2>&1 | tee logs/build-example-project.log
169+ if grep -E "\[ERROR\]" logs/build-example-project.log; then
170+ cat logs/build-example-project.log
171+ exit 1
172+ fi
135173
136174 - name : Generate ${{ matrix.doc_type }} API Documentation
137175 run : |
138176 case ${{ matrix.doc_type }} in
139177 rest)
140- mvn -DskipTests=true smart-doc:adoc
141- mvn -DskipTests=true smart-doc:html
142- mvn -DskipTests=true smart-doc:jmeter
143- mvn -DskipTests=true smart-doc:markdown
144- mvn -DskipTests=true smart-doc:openapi
145- mvn -DskipTests=true smart-doc:postman
146- mvn -DskipTests=true smart-doc:word
147- mvn test -Dtest=com.power.doc.torna.TornaApiTest
178+ mvn -DskipTests=true smart-doc:adoc 2>&1 | tee logs/rest-adoc.log
179+ if grep -E "\[ERROR\]" logs/rest-adoc.log; then cat logs/rest-adoc.log; exit 1; fi
180+
181+ mvn -DskipTests=true smart-doc:html 2>&1 | tee logs/rest-html.log
182+ if grep -E "\[ERROR\]" logs/rest-html.log; then cat logs/rest-html.log; exit 1; fi
183+
184+ mvn -DskipTests=true smart-doc:jmeter 2>&1 | tee logs/rest-jmeter.log
185+ if grep -E "\[ERROR\]" logs/rest-jmeter.log; then cat logs/rest-jmeter.log; exit 1; fi
186+
187+ mvn -DskipTests=true smart-doc:markdown 2>&1 | tee logs/rest-markdown.log
188+ if grep -E "\[ERROR\]" logs/rest-markdown.log; then cat logs/rest-markdown.log; exit 1; fi
189+
190+ mvn -DskipTests=true smart-doc:openapi 2>&1 | tee logs/rest-openapi.log
191+ if grep -E "\[ERROR\]" logs/rest-openapi.log; then cat logs/rest-openapi.log; exit 1; fi
192+
193+ mvn -DskipTests=true smart-doc:postman 2>&1 | tee logs/rest-postman.log
194+ if grep -E "\[ERROR\]" logs/rest-postman.log; then cat logs/rest-postman.log; exit 1; fi
195+
196+ mvn -DskipTests=true smart-doc:swagger 2>&1 | tee logs/rest-swagger.log
197+ if grep -E "\[ERROR\]" logs/rest-swagger.log; then cat logs/rest-swagger.log; exit 1; fi
198+
199+ mvn -DskipTests=true smart-doc:word 2>&1 | tee logs/rest-word.log
200+ if grep -E "\[ERROR\]" logs/rest-word.log; then cat logs/rest-word.log; exit 1; fi
201+
202+ mvn test -Dtest=com.power.doc.torna.TornaApiTest 2>&1 | tee logs/rest-TornaApiTest.log
203+ if grep -E "\[ERROR\]" logs/rest-TornaApiTest.log; then cat logs/rest-TornaApiTest.log; exit 1; fi
148204 ;;
149205 dubbo)
150- mvn -DskipTests=true smart-doc:rpc-adoc
151- mvn -DskipTests=true smart-doc:rpc-html
152- mvn -DskipTests=true smart-doc:rpc-markdown
206+ mvn -DskipTests=true smart-doc:rpc-adoc 2>&1 | tee logs/rpc-adoc.log
207+ if grep -E "\[ERROR\]" logs/rpc-adoc.log; then cat logs/rpc-adoc.log; exit 1; fi
208+
209+ mvn -DskipTests=true smart-doc:rpc-html 2>&1 | tee logs/rpc-html.log
210+ if grep -E "\[ERROR\]" logs/rpc-html.log; then cat logs/rpc-html.log; exit 1; fi
211+
212+ mvn -DskipTests=true smart-doc:rpc-markdown 2>&1 | tee logs/rpc-markdown.log
213+ if grep -E "\[ERROR\]" logs/rpc-markdown.log; then cat logs/rpc-markdown.log; exit 1; fi
153214 ;;
154215 javadoc)
155- mvn -DskipTests=true smart-doc:javadoc-adoc
156- mvn -DskipTests=true smart-doc:javadoc-html
157- mvn -DskipTests=true smart-doc:javadoc-markdown
216+ mvn -DskipTests=true smart-doc:javadoc-adoc 2>&1 | tee logs/javadoc-adoc.log
217+ if grep -E "\[ERROR\]" logs/javadoc-adoc.log; then cat logs/javadoc-adoc.log; exit 1; fi
218+
219+ mvn -DskipTests=true smart-doc:javadoc-html 2>&1 | tee logs/javadoc-html.log
220+ if grep -E "\[ERROR\]" logs/javadoc-html.log; then cat logs/javadoc-html.log; exit 1; fi
221+
222+ mvn -DskipTests=true smart-doc:javadoc-markdown 2>&1 | tee logs/javadoc-markdown.log
223+ if grep -E "\[ERROR\]" logs/javadoc-markdown.log; then cat logs/javadoc-markdown.log; exit 1; fi
158224 ;;
159225 websocket)
160- mvn -DskipTests=true smart-doc:websocket-adoc
161- mvn -DskipTests=true smart-doc:websocket-html
162- mvn -DskipTests=true smart-doc:websocket-markdown
226+ mvn -DskipTests=true smart-doc:websocket-adoc 2>&1 | tee logs/websocket-adoc.log
227+ if grep -E "\[ERROR\]" logs/websocket-adoc.log; then cat logs/websocket-adoc.log; exit 1; fi
228+
229+ mvn -DskipTests=true smart-doc:websocket-html 2>&1 | tee logs/websocket-html.log
230+ if grep -E "\[ERROR\]" logs/websocket-html.log; then cat logs/websocket-html.log; exit 1; fi
231+
232+ mvn -DskipTests=true smart-doc:websocket-markdown 2>&1 | tee logs/websocket-markdown.log
233+ if grep -E "\[ERROR\]" logs/websocket-markdown.log; then cat logs/websocket-markdown.log; exit 1; fi
163234 ;;
164235 esac
165236
@@ -170,6 +241,13 @@ jobs:
170241 path : ${{ github.workspace }}/target/doc/
171242 if-no-files-found : error
172243
244+ - name : Upload ${{ matrix.doc_type }} API Documentation Logs
245+ if : failure()
246+ uses : actions/upload-artifact@v4
247+ with :
248+ name : error-log-${{ matrix.doc_type }}-api-docs
249+ path : logs
250+
173251 generate-grpc-api-doc :
174252 needs : maven-plugin-build
175253 runs-on : ${{ matrix.os }}
@@ -193,6 +271,10 @@ jobs:
193271 java-version : ' 17'
194272 distribution : ' temurin'
195273
274+ - name : Create Logs Directory
275+ run : mkdir -p logs
276+ shell : bash
277+
196278 - name : Download Artifact
197279 uses : actions/download-artifact@v4
198280 with :
@@ -218,20 +300,42 @@ jobs:
218300 mvn versions:set-property -Dproperty="smart-doc.version" -DnewVersion="${{ env.smart-doc-version }}" -DgenerateBackupPoms=false
219301
220302 - name : Build and Install Example Project
221- run : mvn -DskipTests=true install
303+ run : |
304+ mvn -DskipTests=true install 2>&1 | tee logs/build-example-project.log
305+ if grep -E "\[ERROR\]" logs/build-example-project.log; then
306+ cat logs/build-example-project.log
307+ exit 1
308+ fi
309+ shell : bash
222310
223311 - name : Generate gRPC AsciiDoc Documentation
224- run : mvn -DskipTests=true smart-doc:grpc-adoc
312+ run : |
313+ mvn -DskipTests=true smart-doc:grpc-adoc 2>&1 | tee logs/grpc-adoc.log
314+ if grep -E "\[ERROR\]" logs/grpc-adoc.log; then cat logs/grpc-adoc.log; exit 1; fi
315+ shell : bash
225316
226317 - name : Generate gRPC HTML Documentation
227- run : mvn -DskipTests=true smart-doc:grpc-html
318+ run : |
319+ mvn -DskipTests=true smart-doc:grpc-html 2>&1 | tee logs/grpc-html.log
320+ if grep -E "\[ERROR\]" logs/grpc-html.log; then cat logs/grpc-html.log; exit 1; fi
321+ shell : bash
228322
229323 - name : Generate gRPC Markdown Documentation
230- run : mvn -DskipTests=true smart-doc:grpc-markdown
324+ run : |
325+ mvn -DskipTests=true smart-doc:grpc-markdown 2>&1 | tee logs/grpc-markdown.log
326+ if grep -E "\[ERROR\]" logs/grpc-markdown.log; then cat logs/grpc-markdown.log; exit 1; fi
327+ shell : bash
231328
232329 - name : Upload gRPC API Documentation
233330 uses : actions/upload-artifact@v4
234331 with :
235332 name : gRPC-api-doc-${{ runner.os }}
236333 path : ${{ github.workspace }}/target/doc/
237- if-no-files-found : error
334+ if-no-files-found : error
335+
336+ - name : Upload ${{ runner.os }} gRPC API Documentation Log
337+ if : failure()
338+ uses : actions/upload-artifact@v4
339+ with :
340+ name : error-log-${{ runner.os }}-grpc-api-doc
341+ path : logs
0 commit comments