Skip to content

Commit 34e117c

Browse files
committed
ci: separate test workflow
1 parent 4fb9537 commit 34e117c

File tree

7 files changed

+220
-320
lines changed

7 files changed

+220
-320
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Docker Build Test
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
paths-ignore:
8+
- 'docs/**'
9+
- 'boot/**'
10+
- 'examples/**'
11+
- 'web/**'
12+
- '**.md'
13+
- '**/*.png'
14+
15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
17+
cancel-in-progress: true
18+
19+
jobs:
20+
docker-build-test:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout code
24+
uses: actions/checkout@v4
25+
- name: Build Docker image
26+
run: |
27+
docker build --build-arg ROUTE_ROOT_PATH=/memshell-party --build-arg CONTEXT_PATH=/memshell-party -t app .
28+
docker images
29+
- name: Run Docker container
30+
run: |
31+
docker run -d -e BOOT_OPTS=--server.servlet.context-path=/memshell-party -p 8080:8080 app
32+
sleep 10
33+
- name: Test with curl
34+
run: |
35+
if [[ $(curl -w "%{http_code}" -o /dev/null http://localhost:8080/memshell-party/version) -eq 200 ]]; then
36+
echo "Test successful!"
37+
else
38+
echo "Test failed!"
39+
exit 1
40+
fi
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Memshell IntegrationTest
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- '**/memshell/**'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
memshell-integration-test:
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
cases:
20+
- middleware: "tomcat"
21+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-expression:war :vul:vul-webapp-deserialize:war :vul:vul-webapp-jakarta:war"
22+
- middleware: "jetty"
23+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
24+
- middleware: "jbossas"
25+
depend_tasks: ":vul:vul-webapp:war"
26+
- middleware: "jbosseap"
27+
depend_tasks: ":vul:vul-webapp:war"
28+
- middleware: "wildfly"
29+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
30+
- middleware: "glassfish"
31+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
32+
- middleware: "resin"
33+
depend_tasks: ":vul:vul-webapp:war"
34+
- middleware: "payara"
35+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
36+
- middleware: "websphere"
37+
depend_tasks: ":vul:vul-webapp:war"
38+
- middleware: "websphere7"
39+
depend_tasks: ":vul:vul-webapp:war"
40+
- middleware: "weblogic"
41+
depend_tasks: ":vul:vul-webapp:war"
42+
- middleware: "springwebmvc"
43+
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"
44+
- middleware: "springwebflux"
45+
depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar"
46+
- middleware: "xxljob"
47+
depend_tasks: ""
48+
runs-on: ubuntu-latest
49+
name: ${{ matrix.cases.middleware }}
50+
needs: [ unit-test ]
51+
steps:
52+
- name: Checkout
53+
uses: actions/checkout@v4
54+
55+
- name: Setup Java
56+
uses: actions/setup-java@v4
57+
with:
58+
distribution: 'temurin'
59+
java-version: 17
60+
61+
- name: Setup Gradle
62+
uses: gradle/actions/setup-gradle@v4
63+
64+
- name: Prepare for Integration Test
65+
run: ./gradlew ${{ matrix.cases.depend_tasks }}
66+
67+
- name: Integration Test with gradle
68+
run: ./gradlew :integration-test:test --tests '*.memshell.${{ matrix.cases.middleware }}.*' --info
69+
70+
- name: Export Integration Test Summary
71+
uses: mikepenz/action-junit-report@v5
72+
if: success() || failure()
73+
with:
74+
report_paths: '**/build/test-results/test/TEST-*.xml'
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Probe IntegrationTest
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- '**/probe/**'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
test:
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
cases:
20+
- middleware: "tomcat"
21+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-expression:war :vul:vul-webapp-deserialize:war :vul:vul-webapp-jakarta:war"
22+
- middleware: "jetty"
23+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
24+
- middleware: "jbossas"
25+
depend_tasks: ":vul:vul-webapp:war"
26+
- middleware: "jbosseap"
27+
depend_tasks: ":vul:vul-webapp:war"
28+
- middleware: "wildfly"
29+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
30+
- middleware: "glassfish"
31+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
32+
- middleware: "resin"
33+
depend_tasks: ":vul:vul-webapp:war"
34+
- middleware: "payara"
35+
depend_tasks: ":vul:vul-webapp:war :vul:vul-webapp-jakarta:war"
36+
- middleware: "websphere"
37+
depend_tasks: ":vul:vul-webapp:war"
38+
- middleware: "websphere7"
39+
depend_tasks: ":vul:vul-webapp:war"
40+
- middleware: "weblogic"
41+
depend_tasks: ":vul:vul-webapp:war"
42+
- middleware: "springwebmvc"
43+
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"
44+
- middleware: "springwebflux"
45+
depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar"
46+
runs-on: ubuntu-latest
47+
name: ${{ matrix.cases.middleware }}
48+
steps:
49+
- name: Checkout
50+
uses: actions/checkout@v4
51+
52+
- name: Setup Java
53+
uses: actions/setup-java@v4
54+
with:
55+
distribution: 'temurin'
56+
java-version: 17
57+
58+
- name: Setup Gradle
59+
uses: gradle/actions/setup-gradle@v4
60+
61+
- name: Prepare for Integration Test
62+
run: ./gradlew ${{ matrix.cases.depend_tasks }}
63+
64+
- name: Integration Test with gradle
65+
run: ./gradlew :integration-test:test --tests '*.probe.${{ matrix.cases.middleware }}.*' --info
66+
67+
- name: Export Integration Test Summary
68+
uses: mikepenz/action-junit-report@v5
69+
if: success() || failure()
70+
with:
71+
report_paths: '**/build/test-results/test/TEST-*.xml'

.github/workflows/test.yaml

Lines changed: 0 additions & 174 deletions
This file was deleted.

.github/workflows/unit-test.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Unit-Test
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- 'generator/**'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
unit-test:
16+
name: UniteTest
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
22+
- name: Setup Java
23+
uses: actions/setup-java@v4
24+
with:
25+
distribution: 'temurin'
26+
java-version: 17
27+
28+
- name: Setup Gradle
29+
uses: gradle/actions/setup-gradle@v4
30+
31+
- name: Generator Unit Test with Gradle
32+
run: ./gradlew :generator:test
33+
34+
- name: Boot Unit Test with Gradle
35+
run: ./gradlew :boot:test

0 commit comments

Comments
 (0)