-
Notifications
You must be signed in to change notification settings - Fork 300
162 lines (152 loc) · 6.1 KB
/
default-tests.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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Java CI
on: [push, pull_request]
jobs:
checkstyle:
name: Run checkstyle
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
java-package: jdk
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Run checkstyle with Maven
run: mvn clean verify -B -Pcheckstyle -Dmaven.test.skip=true
test:
name: Run basic test with Java ${{ matrix.java_version }}
runs-on: ubuntu-latest
needs: checkstyle
strategy:
matrix:
java_version: ['11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: ${{ matrix.java_version }}
java-package: jdk
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
run: mvn clean verify javadoc:javadoc -B
integration-test:
name: Run integration test with Java ${{ matrix.java_version }} and Maven ${{ matrix.maven_version }}
runs-on: ubuntu-latest
needs: checkstyle
strategy:
matrix:
java_version: ['11']
maven_version: ['3.6.3', '3.8.8', '3.9.7', '4.0.0-alpha-13', '4.0.0-beta-3']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: ${{ matrix.java_version }}
java-package: jdk
- name: Setup Maven ${{ matrix.maven_version }}
run: /bin/bash -c 'if [[ -n "${{ matrix.maven_version }}" ]]; then \
echo "Downloading Maven ${{ matrix.maven_version }}....";
if [[ "${{ matrix.maven_version }}" == "3.0" ]]; then
wget https://archive.apache.org/dist/maven/binaries/apache-maven-3.0-bin.zip || terminate 1;
else
wget https://archive.apache.org/dist/maven/maven-3/${{ matrix.maven_version }}/binaries/apache-maven-${{ matrix.maven_version }}-bin.zip || terminate 1;
fi;
unzip -qq apache-maven-${{ matrix.maven_version }}-bin.zip || terminate 1;
export M2_HOME=$PWD/apache-maven-${{ matrix.maven_version }};
export PATH=$M2_HOME/bin:$PATH;
mvn -version;
fi'
- name: Setup M2_HOME Environment variable
run: echo "M2_HOME=${PWD}/apache-maven-${{ matrix.maven_version }}" >> $GITHUB_ENV
- name: Setup System Path to use the custom Maven
run: echo "${M2_HOME}/bin" >> $GITHUB_PATH
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2
# Include Maven version in key to not use cache from other Maven versions
# in case they corrupt the local repository
# Include it before `-m2-` to prevent other cache actions' restore-keys matching it
key: ${{ runner.os }}-maven-${{ matrix.maven_version }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-${{ matrix.maven_version }}-m2
- name: Verify Setup of Maven ${{ matrix.maven_version }}
run: bash -c "echo ${M2_HOME}; echo ${PATH}; mvn -version"
- name: Install a test version with Maven
run: mvn clean install -B --settings=./.buildscript/settings.xml
- name: Run the local testversion with Maven
run: mvn clean initialize -B -Pdemo -Dmaven.test.skip=true --settings=./.buildscript/settings.xml
- name: Validate if the testversion has produced the desired output
run: /bin/bash -c '[[ -f target/testing.properties ]] && cat target/testing.properties || exit 1;'
coveralls:
name: Run coveralls
runs-on: ubuntu-latest
needs: integration-test
if: ${{ github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master') }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- run: git checkout "${GITHUB_REF:11}"
- run: git submodule sync
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
java-package: jdk
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Run Coveralls with Maven
run: mvn clean test jacoco:report coveralls:report -B -Pcoveralls -DrepoToken=${{ secrets.CoverallsRepoTokenSecret }}
deploy-snapshot:
name: Deploy snapshot
runs-on: ubuntu-latest
needs: integration-test
if: ${{ github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/') && github.ref == 'refs/heads/master' }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
java-package: jdk
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Deploy snapshot with Maven
run: mvn clean deploy -B --settings=./.buildscript/settings.xml
env:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}