# This workflow will build the Java project with Maven and peform IntelliJ smoke tests # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven name: Smoke Tests on: push: branches: - '**' paths-ignore: - "charts/**" pull_request: branches: [ master ] paths-ignore: - "charts/**" jobs: build_and_smoke_test: 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: | 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 '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 found in server logs." fi - name: Upload server logs if: always() uses: actions/upload-artifact@v4 with: name: server-logs path: logs/server.log