From 0e04931b23a933f3d1f0159b2900437d3bc3b603 Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Tue, 29 Apr 2025 13:12:13 +0200 Subject: [PATCH 1/2] feat: enhance smoke tests with logging and error highlighting --- .github/workflows/smoke-tests.yml | 65 ++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 6e76e82..08c5d8b 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -20,22 +20,51 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout project - uses: actions/checkout@v4 - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: zulu - - name: Build with Maven - run: mvn -B package --file pom.xml -Dmaven.test.skip=true - - name: Docker Pull HTTP client - run: docker pull jetbrains/intellij-http-client - - name: Start server with jetty - run: | - mvn -P jetty spring-boot:run & export JPA_PROCESS=$! - sleep 80 - - name: Execute smoke tests - run: docker run --rm -v $PWD:/workdir --add-host host.docker.internal:host-gateway jetbrains/intellij-http-client -D src/test/smoketest/plain_server.http --env-file src/test/smoketest/http-client.env.json --env default + - name: Checkout project + uses: actions/checkout@v4 - + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: zulu + + - name: Build with Maven + run: mvn -B package --file pom.xml -Dmaven.test.skip=true + + - name: Docker Pull HTTP client + run: docker pull jetbrains/intellij-http-client + + - name: Start server with jetty + run: | + mkdir -p logs + mvn -P jetty spring-boot:run | tee logs/server.log & + sleep 80 + + - name: Execute smoke tests + run: docker run --rm -v $PWD:/workdir --add-host host.docker.internal:host-gateway jetbrains/intellij-http-client -D src/test/smoketest/plain_server.http --env-file src/test/smoketest/http-client.env.json --env default + + - name: Show last server logs + if: always() + run: | + echo "===== Last 200 Lines of Server Log =====" + tail -n 200 logs/server.log || true + + - name: Highlight server errors + if: always() + run: | + echo "===== Highlighted Server Errors =====" + if grep -E 'ERROR|Exception|WARN' logs/server.log > /dev/null; then + grep -E 'ERROR|Exception|WARN' logs/server.log | while read -r line; do + echo "::error::${line}" + done + else + echo "No errors or exceptions found in server logs." + fi + + - name: Upload server logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: server-logs + path: logs/server.log From 81dab90931de32fa3fdd297c9ecaaf46d163d1b8 Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Tue, 29 Apr 2025 13:18:55 +0200 Subject: [PATCH 2/2] feat: refine error logging in smoke tests to focus on ERROR level --- .github/workflows/smoke-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 08c5d8b..7ba24d0 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -54,12 +54,12 @@ jobs: if: always() run: | echo "===== Highlighted Server Errors =====" - if grep -E 'ERROR|Exception|WARN' logs/server.log > /dev/null; then - grep -E 'ERROR|Exception|WARN' logs/server.log | while read -r line; do + if grep 'ERROR' logs/server.log > /dev/null; then + grep 'ERROR' logs/server.log | while read -r line; do echo "::error::${line}" done else - echo "No errors or exceptions found in server logs." + echo "No errors found in server logs." fi - name: Upload server logs