diff --git a/.github/workflows/integration-gzoltar.yml b/.github/workflows/integration-gzoltar.yml new file mode 100644 index 0000000000..59f7a1a39e --- /dev/null +++ b/.github/workflows/integration-gzoltar.yml @@ -0,0 +1,84 @@ +--- +name: Integration with GZoltar Fault Localization + +on: + push: + paths-ignore: + - "docs/**" + - "**/*.md" + - "**/*.rst" + branches: + - master + - "[0-9].[0-9]" + pull_request: + branches: + - master + - "[0-9].[0-9]" + schedule: + - cron: "0 1 * * *" # nightly build + +jobs: + build: + name: Build and Test + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - uses: actions/checkout@v2 + - name: Set up publishing to maven central + uses: actions/setup-java@v2 + with: + java-version: "8" + distribution: "temurin" + - name: System setup + run: | + sudo apt update + sudo apt install -y stunnel make + make system-setup + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: | + ~/.m2/repository + /var/cache/apt + key: jedis-${{hashFiles('**/pom.xml')}} + - name: Maven offline + run: | + mvn -q dependency:go-offline + - name: Run tests + run: | + TEST="" make test-gzoltar + env: + JVM_OPTS: -Xmx3200m + TERM: dumb + - name: sleep 10s + run: sleep 10s + - name: Make - start + run: | + make start + sleep 2s + - name: Docker - mod or stack + run: docker run -p 52567:6379 -d redis/redis-stack-server:edge + - name: Test commands - default protocol + run: mvn -P gzoltar-sufire -Dtest="redis.clients.jedis.commands.**" gzoltar:prepare-agent test + - name: Test commands - RESP3 protocol + run: mvn -P gzoltar-sufire -DjedisProtocol=3 -Dtest="redis.clients.jedis.commands.**" gzoltar:prepare-agent test + - name: Test module commands - default protocol + run: mvn -P gzoltar-sufire -DmodulesDocker="localhost:52567" -Dtest="redis.clients.jedis.modules.**" gzoltar:prepare-agent test + - name: Test module commands - RESP3 protocol + run: mvn -P gzoltar-sufire -DjedisProtocol=3 -DmodulesDocker="localhost:52567" -Dtest="redis.clients.jedis.modules.**" gzoltar:prepare-agent test + - name: Make - stop + run: make stop + - name: Generate GZoltar report + run: mvn gzoltar:fl-report + - name: Enhance GZoltar results + uses: GZoltar/gzoltar-feedback-action@main + env: + NODE_OPTIONS: "--max-old-space-size=16384" + with: + build-path: "/target/site/gzoltar" + sfl-ranking: "[ochiai]" + sfl-threshold: "[0.5]" + sfl-ranking-order: "ochiai" + upload-artifacts: true \ No newline at end of file diff --git a/Makefile b/Makefile index 2987ad80dd..f650b06051 100644 --- a/Makefile +++ b/Makefile @@ -445,6 +445,11 @@ test: compile-module start mvn -Dtest=${SKIP_SSL}${TEST} clean compile test make stop +test-gzoltar: compile-module start + sleep 2 + mvn -P gzoltar-sufire -Dtest=${SKIP_SSL}${TEST} clean compile gzoltar:prepare-agent test + make stop + package: start mvn clean package make stop diff --git a/pom.xml b/pom.xml index 711be75225..6185f42ed4 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,7 @@ 1.7.36 redis.clients.jedis 1.7.1 + 1.7.3 @@ -134,6 +135,13 @@ ${resilience4j.version} true + + com.gzoltar + com.gzoltar.agent + runtime + ${gzoltar.version} + test + @@ -277,6 +285,49 @@ + + com.gzoltar + com.gzoltar.maven + ${gzoltar.version} + + + fl-report + + fl-report + + + line + true + true + true + + + sfL + + ochiai + + + rho + ambiguity + entropy + + + + + + sunburst + vertical_partition + + + + + + + + + @@ -321,5 +372,63 @@ + + gzoltar-sufire + + + gzoltar-sufire + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.5 + + true + + + + + com.gzoltar + com.gzoltar.maven + ${gzoltar.version} + + + junit + junit + 4.13.2 + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.1.0 + + + org.apache.maven.surefire + surefire-junit47 + 3.1.0 + + + + true + + ${project.build.directory}/gzoltar.ser + + + + listener + com.gzoltar.internal.core.listeners.JUnitListener + + + + + + +