name: Test on: push: branches: - '**' paths-ignore: - 'docs/**' - 'boot/**' - 'examples/**' - 'web/**' - '**.md' - '**/*.png' concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} cancel-in-progress: true jobs: unit-test: name: UniteTest runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Generator Unit Test with Gradle run: ./gradlew :generator:test - name: Boot Unit Test with Gradle run: ./gradlew :boot:test docker-build-test: runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' steps: - name: Checkout code uses: actions/checkout@v4 - name: Build Docker image run: | docker build --build-arg ROUTE_ROOT_PATH=/memshell-party --build-arg CONTEXT_PATH=/memshell-party -t app . docker images - name: Run Docker container run: | docker run -d -e BOOT_OPTS=--server.servlet.context-path=/memshell-party -p 8080:8080 app sleep 10 - name: Test with curl run: | if [[ $(curl -w "%{http_code}" -o /dev/null http://localhost:8080/memshell-party/version) -eq 200 ]]; then echo "Test successful!" else echo "Test failed!" exit 1 fi memshell-integration-test: strategy: fail-fast: false matrix: cases: - middleware: "tomcat" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-expression:war :vul:vul-webapp-deserialize:war :vul:vul-webapp-jakarta:war" - middleware: "jetty" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "jbossas" depend_tasks: ":vul:vul-webapp:war" - middleware: "jbosseap" depend_tasks: ":vul:vul-webapp:war" - middleware: "wildfly" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "glassfish" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "resin" depend_tasks: ":vul:vul-webapp:war" - middleware: "payara" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "websphere" depend_tasks: ":vul:vul-webapp:war" - middleware: "websphere7" depend_tasks: ":vul:vul-webapp:war" - middleware: "weblogic" depend_tasks: ":vul:vul-webapp:war" - middleware: "springwebmvc" depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar" - middleware: "springwebflux" depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar" - middleware: "xxljob" depend_tasks: "" runs-on: ubuntu-latest name: ${{ matrix.cases.middleware }} needs: [ unit-test ] steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare for Integration Test run: ./gradlew ${{ matrix.cases.depend_tasks }} - name: Integration Test with gradle run: ./gradlew :integration-test:test --tests '*.memshell.${{ matrix.cases.middleware }}.*' --info - name: Export Integration Test Summary run: cat integration-test/build/test-results/report.md >> $GITHUB_STEP_SUMMARY detection-integration-test: strategy: fail-fast: false matrix: cases: - middleware: "tomcat" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-expression:war :vul:vul-webapp-deserialize:war :vul:vul-webapp-jakarta:war" - middleware: "jetty" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "jbossas" depend_tasks: ":vul:vul-webapp:war" - middleware: "jbosseap" depend_tasks: ":vul:vul-webapp:war" - middleware: "wildfly" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "glassfish" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "resin" depend_tasks: ":vul:vul-webapp:war" - middleware: "payara" depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war" - middleware: "websphere" depend_tasks: ":vul:vul-webapp:war" - middleware: "websphere7" depend_tasks: ":vul:vul-webapp:war" - middleware: "weblogic" depend_tasks: ":vul:vul-webapp:war" - middleware: "springwebmvc" depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar" - middleware: "springwebflux" depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar" runs-on: ubuntu-latest name: ${{ matrix.cases.middleware }} needs: [ unit-test ] steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare for Integration Test run: ./gradlew ${{ matrix.cases.depend_tasks }} - name: Integration Test with gradle run: ./gradlew :integration-test:test --tests '*.probe.${{ matrix.cases.middleware }}.*' --info