mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
119 lines
3.8 KiB
YAML
119 lines
3.8 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '**'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'boot/**'
|
|
- '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
|
|
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
|
|
|
|
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 '*.${{ matrix.cases.middleware }}.*' --info
|
|
|
|
- name: Export Integration Test Summary
|
|
run: cat integration-test/build/test-results/report.md >> $GITHUB_STEP_SUMMARY |