-
Notifications
You must be signed in to change notification settings - Fork 23
131 lines (121 loc) · 4.07 KB
/
microshed-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: MicroShed CI
on:
push:
branches:
- main
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]
paths-ignore:
- '.gitignore'
- '.dockerignore'
- '*.md'
- '*.adoc'
- '*.txt'
- '.github/ISSUE_TEMPLATE/**'
env:
LANG: en_US.UTF-8
jobs:
build:
strategy:
matrix:
os: [ ubuntu-latest ]
java: [ 11 ]
fail-fast: false
max-parallel: 4
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.java }}, ${{ matrix.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2
with:
cache-overwrite-existing: true
cache-read-only: ${{ github.ref != 'refs/heads/main' }} #Read only for pulls, read/write for pushes
- name: Build with Gradle
run: |
chmod +x gradlew
./gradlew assemble testClasses --parallel
integration_tests:
name: Tests - ${{matrix.category}}
runs-on: ubuntu-latest
needs: build
timeout-minutes: 20
strategy:
fail-fast: false
max-parallel: 18
matrix:
include:
- category: GENERAL
projects: >
maven-app
jdbc-app
kafka-app
- category: COMPLEX
projects: >
everything-app
- category: RESTFUL
projects: >
jaxrs-json
jaxrs-basicauth
jaxrs-mpjwt
- category: LIBERTY/PAYARA
projects: >
liberty-app
payara-app
- category: QUARKUS/WILDFLY
projects: >
quarkus-app
wildfly-app
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
with:
java-version: 11
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2
with:
cache-overwrite-existing: true
cache-read-only: ${{ github.ref != 'refs/heads/main' }} #Read only for pulls, read/write for pushes
- uses: testspace-com/setup-testspace@8472399a8030486c043937b8451b5e743f961ae0 # v1.0.7
if: ${{ github.event_name == 'push' }}
with:
domain: ${{github.repository_owner}}
- name: Run integration tests
shell: bash
env:
TEST_PROJECTS: ${{matrix.projects}}
CATEGORY: ${{matrix.category}}
run: |
chmod +x gradlew
mkdir results
echo "Will be running projects $TEST_PROJECTS"
for TEST_PROJECT in $TEST_PROJECTS
do
if [[ ! -d "sample-apps/$TEST_PROJECT" ]]; then
echo "::error::Test project $TEST_PROJECT does not exist.";
exit 1;
fi
echo "### BEGIN running test project $TEST_PROJECT"
./gradlew :microshed-testing-$TEST_PROJECT:test
echo "### END running test project $TEST_PROJECT";
#Gradle test results
if [[ -d "sample-apps/$TEST_PROJECT/build/test-results/test/" ]]; then
cp sample-apps/$TEST_PROJECT/build/test-results/test/TEST-*.xml results/
fi
#Maven test results
if [[ -d "sample-apps/$TEST_PROJECT/target/test-failsafe-reports/" ]]; then
cp sample-apps/$TEST_PROJECT/target/test-failsafe-reports/TEST-*.xml results/
fi
done
echo "Done running all tests, results folder contains:"
ls -la results/
- name: Upload test results
if: ${{ github.event_name == 'push' }}
run: testspace "[ ${{ matrix.category }} ]results/TEST-*.xml"