-
Notifications
You must be signed in to change notification settings - Fork 43
213 lines (193 loc) · 11 KB
/
Copy pathactions.yml
File metadata and controls
213 lines (193 loc) · 11 KB
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
name: Test report
on:
workflow_dispatch:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
push:
paths-ignore:
- '**.md'
env:
MAVEN_OPTS: -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
permissions: read-all
jobs:
tests:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
# Java 17 tests
- name: "Unit tests - Java 17"
java_version: 17
test_suite: 'test -Djava.version=17 jacoco:report'
- name: "Style check - Java 17"
java_version: 17
test_suite: 'test-compile -Djava.version=17 com.mycila:license-maven-plugin:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check javadoc:jar'
- name: "Standalone integration 4.1 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=4.1 -Djava.version=17 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Standalone integration 5.0 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Python integration - Java 17"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Topology integration - Java 17"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "DatacenterAware Multi-Agent integration tests - Java 17"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
# Java 21 tests
- name: "Unit tests - Java 21"
java_version: 21
test_suite: 'test -Dnet.bytebuddy.experimental=true -Djava.version=21 jacoco:report'
- name: "Style check - Java 21"
java_version: 21
test_suite: 'test-compile -Djava.version=21 com.mycila:license-maven-plugin:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check javadoc:jar'
- name: "Standalone integration 4.1 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=4.1 -Djava.version=21 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Standalone integration 5.0 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Python integration - Java 21"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Topology integration - Java 21"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "DatacenterAware Multi-Agent integration tests - Java 21"
java_version: 21
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
# Java 17 Jolokia tests
- name: "Jolokia Standalone integration 5.0 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Jolokia Python integration - Java 17"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Python integration - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 17"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 17"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
# Java 21 Jolokia tests
- name: "Jolokia Standalone integration 5.0 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Jolokia Python integration - Java 21"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Python integration - Java 21 - PEM"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 21"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 21 - PEM"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 21"
java_version: 21
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 21 - PEM"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0.4 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Cache local Maven repository
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ~/.m2/repository
key: build-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
build-${{ runner.os }}-maven-
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set up Python 3
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: 3.13
- name: Install black
run: python -m pip install black==24.10.0
- name: Run black in the check mode
run: black --check --verbose --line-length 120 ./ecchronos-binary/src
- name: install dependencies
run: mvn install -Pbuild-cassandra-test-jar -DskipTests=true
- name: Set Cassandra memory limits for topology tests
if: contains(matrix.name, 'Topology')
run: |
echo "MAX_HEAP_SIZE=1536M" >> $GITHUB_ENV
echo "HEAP_NEWSIZE=200M" >> $GITHUB_ENV
- name: Set up Docker Compose
uses: KengoTODA/actions-setup-docker-compose@477353946803dd64eaa44008b865b6bfc88cab4e # v1.2.4
with:
version: '2.31.0'
- run: mvn $TEST_SUITE -B
id: tests
env:
TEST_SUITE: ${{ matrix.test_suite }}
- name: Upload artifacts
if: ${{ failure() && steps.tests.conclusion == 'failure' }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ matrix.name }}-ecchronos-logs
path: ./ecchronos-binary/target/test/ecchronos-binary-agent-*/logs/
if-no-files-found: 'ignore'
- name: Upload coverage to Codecov
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: >
./rest/target/site/jacoco/jacoco.xml,
./application/target/site/jacoco/jacoco.xml,
./core/target/site/jacoco/jacoco.xml,
./fault.manager.impl/target/site/jacoco/jacoco.xml,
./connection.impl/target/site/jacoco/jacoco.xml,
./core.impl/target/site/jacoco/jacoco.xml,
./data/target/site/jacoco/jacoco.xml,
./utils/target/site/jacoco/jacoco.xml