Skip to content

Commit a54acb3

Browse files
authored
Reorganize github actions to make it possible to set branch-rules (#327)
Github allows to set branch rules, so that any PR will require certain actions to be completed. It have no ability to match by pattern, and therefore matrix actions needs to be tweaked to have static values.
1 parent 17dd5ef commit a54acb3

File tree

2 files changed

+66
-45
lines changed

2 files changed

+66
-45
lines changed

.github/workflows/dep-lic-scan.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
runs-on: ubuntu-latest
3131
steps:
3232
- name: Check out code
33-
uses: actions/checkout@v2
33+
uses: actions/checkout@v4
3434
- name: Install Fossa CLI
3535
run: |
3636
curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh | bash -s -- -b .

.github/workflows/[email protected]

Lines changed: 65 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020

2121
steps:
2222
- name: Checkout source
23-
uses: actions/checkout@v2
23+
uses: actions/checkout@v4
2424

2525
- name: Set up JDK ${{ matrix.java-version }}
26-
uses: actions/setup-java@v2
26+
uses: actions/setup-java@v4
2727
with:
2828
java-version: ${{ matrix.java-version }}
2929
distribution: 'adopt'
@@ -69,10 +69,10 @@ jobs:
6969

7070
steps:
7171
- name: Checkout source
72-
uses: actions/checkout@v2
72+
uses: actions/checkout@v4
7373

7474
- name: Set up JDK ${{ matrix.java-version }}
75-
uses: actions/setup-java@v2
75+
uses: actions/setup-java@v4
7676
with:
7777
java-version: ${{ matrix.java-version }}
7878
distribution: 'adopt'
@@ -99,10 +99,10 @@ jobs:
9999

100100
steps:
101101
- name: Checkout source
102-
uses: actions/checkout@v2
102+
uses: actions/checkout@v4
103103

104104
- name: Set up JDK 8
105-
uses: actions/setup-java@v2
105+
uses: actions/setup-java@v4
106106
with:
107107
java-version: ${{ matrix.java-version }}
108108
distribution: 'adopt'
@@ -124,7 +124,7 @@ jobs:
124124
cp --parents ./**/target/*-reports/*.xml unit/
125125
126126
- name: Upload test results
127-
uses: actions/upload-artifact@v2
127+
uses: actions/upload-artifact@v4
128128
if: success() || failure()
129129
with:
130130
name: test-results
@@ -137,23 +137,13 @@ jobs:
137137

138138
steps:
139139
- name: Checkout source
140-
uses: actions/checkout@v2
140+
uses: actions/checkout@v4
141141

142142
- name: Setup Python 3
143-
uses: actions/setup-python@v2
143+
uses: actions/setup-python@v5
144144
with:
145145
python-version: '3.11'
146146

147-
- name: Fetch Scylla and Cassandra versions
148-
id: fetch-versions
149-
run: |
150-
pip3 install -r ci/requirements.txt
151-
echo "scylla-integration-tests-versions=$(python3 ci/version_fetch.py scylla-oss-stable:2 scylla-oss-rc scylla-enterprise-stable:2 scylla-enterprise-rc)" >> $GITHUB_OUTPUT
152-
echo "cassandra-integration-tests-versions=$(python3 ci/version_fetch.py cassandra3-stable:1 cassandra4-stable:1)" >> $GITHUB_OUTPUT
153-
outputs:
154-
scylla-integration-tests-versions: ${{ steps.fetch-versions.outputs.scylla-integration-tests-versions }}
155-
cassandra-integration-tests-versions: ${{ steps.fetch-versions.outputs.cassandra-integration-tests-versions }}
156-
157147
cassandra-integration-tests:
158148
name: Cassandra ITs
159149
runs-on: ubuntu-latest
@@ -162,16 +152,16 @@ jobs:
162152

163153
strategy:
164154
matrix:
165-
cassandra-version: ${{ fromJson(needs.setup-integration-tests.outputs.cassandra-integration-tests-versions) }}
155+
cassandra-version: [RELEASE-3.X, RELEASE-4.X]
166156
java-version: [8]
167157
fail-fast: false
168158

169159
steps:
170160
- name: Checkout source
171-
uses: actions/checkout@v2
161+
uses: actions/checkout@v4
172162

173163
- name: Set up JDK 8
174-
uses: actions/setup-java@v2
164+
uses: actions/setup-java@v4
175165
with:
176166
java-version: ${{ matrix.java-version }}
177167
distribution: 'adopt'
@@ -183,30 +173,41 @@ jobs:
183173
key: ${{ runner.os }}-${{ matrix.java-version }}-maven-${{ hashFiles('**/pom.xml') }}
184174

185175
- name: Setup Python 3
186-
uses: actions/setup-python@v2
176+
uses: actions/setup-python@v5
187177
with:
188178
python-version: '3.11'
189179

190180
- name: Setup environment
191181
run: |
192182
pip3 install https://github.com/scylladb/scylla-ccm/archive/a93125bc6ad7dd5c9694331e89dc1fb212431ffe.zip
193183
184+
- name: Get cassandra version
185+
id: cassandra-version
186+
run: |
187+
if [[ "${{ matrix.cassandra-version }}" == "RELEASE-3.X" ]]; then
188+
echo "value=$(python3 ci/version_fetch.py --version-index 1 cassandra3-stable:1)" >> $GITHUB_OUTPUT
189+
elif [[ "${{ matrix.cassandra-version }}" == "RELEASE-4.X" ]]; then
190+
echo "value=$(python3 ci/version_fetch.py --version-index 1 cassandra4-stable:1)" >> $GITHUB_OUTPUT
191+
else
192+
echo "Unknown cassandra version name `${{ matrix.cassandra-version }}`"
193+
fi
194+
194195
- name: Restore CCM image cache
195196
uses: actions/cache/restore@v4
196197
id: ccm-cache
197198
with:
198199
path: ~/.ccm/repository
199-
key: ccm-cassandra-${{ runner.os }}-${{ matrix.cassandra-version }}
200+
key: ccm-cassandra-${{ runner.os }}-${{ steps.cassandra-version.outputs.value }}
200201

201-
- name: Run integration tests on Cassandra (${{ matrix.cassandra-version }})
202-
run: mvn -B -e verify -Dccm.version=${{ matrix.cassandra-version }} -Dfmt.skip=true -Dclirr.skip=true -Danimal.sniffer.skip=true
202+
- name: Run integration tests on Cassandra (${{ steps.cassandra-version.outputs.value }})
203+
run: mvn -B -e verify -Dccm.version=${{ steps.cassandra-version.outputs.value }} -Dfmt.skip=true -Dclirr.skip=true -Danimal.sniffer.skip=true
203204

204205
- name: Save CCM image cache
205206
uses: actions/cache/save@v4
206207
if: steps.ccm-cache.outputs.cache-hit != 'true'
207208
with:
208209
path: ~/.ccm/repository
209-
key: ccm-cassandra-${{ runner.os }}-${{ matrix.cassandra-version }}
210+
key: ccm-cassandra-${{ runner.os }}-${{ steps.cassandra-version.outputs.value }}
210211

211212
- name: Copy test results
212213
if: success() || failure()
@@ -216,17 +217,17 @@ jobs:
216217
cp --parents ./**/target/*-reports/*.xml cassandra-${{ matrix.cassandra-version }}/
217218
218219
- name: Upload test results
219-
uses: actions/upload-artifact@v2
220+
uses: actions/upload-artifact@v4
220221
if: success() || failure()
221222
with:
222-
name: test-results
223+
name: test-results-${{ matrix.java-version }}-${{ matrix.cassandra-version }}
223224
path: "*/**/target/*-reports/*.xml"
224225

225226
- name: Upload CCM logs
226-
uses: actions/upload-artifact@v2
227+
uses: actions/upload-artifact@v4
227228
if: ${{ failure() }}
228229
with:
229-
name: ccm-logs-cassandra-${{ matrix.cassandra-version }}
230+
name: ccm-log-cassandra-${{ matrix.java-version }}-${{ matrix.cassandra-version }}
230231
path: /tmp/ccm*/ccm*/node*/logs/*
231232

232233
scylla-integration-tests:
@@ -237,16 +238,16 @@ jobs:
237238

238239
strategy:
239240
matrix:
240-
scylla-version: ${{ fromJson(needs.setup-integration-tests.outputs.scylla-integration-tests-versions) }}
241+
scylla-version: [ENTERPRISE-RELEASE, ENTERPRISE-PRIOR-RELEASE, OSS-RELEASE, OSS-PRIOR-RELEASE, ENTERPRISE-RC, OSS-RC]
241242
java-version: [8]
242243
fail-fast: false
243244

244245
steps:
245246
- name: Checkout source
246-
uses: actions/checkout@v2
247+
uses: actions/checkout@v4
247248

248249
- name: Set up JDK 8
249-
uses: actions/setup-java@v2
250+
uses: actions/setup-java@v4
250251
with:
251252
java-version: ${{ matrix.java-version }}
252253
distribution: 'adopt'
@@ -258,7 +259,7 @@ jobs:
258259
key: ${{ runner.os }}-${{ matrix.java-version }}-maven-${{ hashFiles('**/pom.xml') }}
259260

260261
- name: Setup Python 3
261-
uses: actions/setup-python@v2
262+
uses: actions/setup-python@v5
262263
with:
263264
python-version: '3.11'
264265

@@ -267,22 +268,42 @@ jobs:
267268
pip3 install https://github.com/scylladb/scylla-ccm/archive/a93125bc6ad7dd5c9694331e89dc1fb212431ffe.zip
268269
sudo sh -c "echo 2097152 > /proc/sys/fs/aio-max-nr"
269270
271+
- name: Get scylla version
272+
id: scylla-version
273+
run: |
274+
if [[ "${{ matrix.scylla-version }}" == "ENTERPRISE-RELEASE" ]]; then
275+
echo "value=$(python3 ci/version_fetch.py --version-index 1 scylla-enterprise-stable:1)" >> $GITHUB_OUTPUT
276+
elif [[ "${{ matrix.scylla-version }}" == "ENTERPRISE-PRIOR-RELEASE" ]]; then
277+
echo "value=$(python3 ci/version_fetch.py --version-index 2 scylla-enterprise-stable:2)" >> $GITHUB_OUTPUT
278+
elif [[ "${{ matrix.scylla-version }}" == "ENTERPRISE-RC" ]]; then
279+
echo "value=$(python3 ci/version_fetch.py --version-index 1 scylla-enterprise-rc)" >> $GITHUB_OUTPUT
280+
elif [[ "${{ matrix.scylla-version }}" == "OSS-RELEASE" ]]; then
281+
echo "value=$(python3 ci/version_fetch.py --version-index 1 scylla-oss-stable:1)" >> $GITHUB_OUTPUT
282+
elif [[ "${{ matrix.scylla-version }}" == "OSS-PRIOR-RELEASE" ]]; then
283+
echo "value=$(python3 ci/version_fetch.py --version-index 2 scylla-oss-stable:2)" >> $GITHUB_OUTPUT
284+
elif [[ "${{ matrix.scylla-version }}" == "OSS-RC" ]]; then
285+
echo "value=$(python3 ci/version_fetch.py --version-index 1 scylla-oss-rc)" >> $GITHUB_OUTPUT
286+
else
287+
echo "Unknown scylla version name `${{ matrix.scylla-version }}`"
288+
exit 1
289+
fi
290+
270291
- name: Restore CCM image cache
271292
uses: actions/cache/restore@v4
272293
id: ccm-cache
273294
with:
274-
path: ~/.ccm/scylla-repository
275-
key: ccm-scylla-${{ runner.os }}-${{ matrix.scylla-version }}
295+
path: ~/.ccm/repository
296+
key: ccm-scylla-${{ runner.os }}-${{ steps.scylla-version.outputs.value }}
276297

277-
- name: Run integration tests on Scylla (${{ matrix.scylla-version }})
278-
run: mvn -B verify -Dccm.version=${{ matrix.scylla-version }} -Dccm.scylla=true -Dfmt.skip=true -Dclirr.skip=true -Danimal.sniffer.skip=true
298+
- name: Run integration tests on Scylla (${{ steps.scylla-version.outputs.value }})
299+
run: mvn -B verify -Dccm.version=${{ steps.scylla-version.outputs.value }} -Dccm.scylla=true -Dfmt.skip=true -Dclirr.skip=true -Danimal.sniffer.skip=true
279300

280301
- name: Save CCM image cache
281302
uses: actions/cache/save@v4
282303
if: steps.ccm-cache.outputs.cache-hit != 'true'
283304
with:
284305
path: ~/.ccm/repository
285-
key: ccm-scylla-${{ runner.os }}-${{ matrix.scylla-version }}
306+
key: ccm-scylla-${{ runner.os }}-${{ steps.scylla-version.outputs.value }}
286307

287308
- name: Copy test results
288309
if: success() || failure()
@@ -292,15 +313,15 @@ jobs:
292313
cp --parents ./**/target/*-reports/*.xml scylla-${{ matrix.scylla-version }}/
293314
294315
- name: Upload test results
295-
uses: actions/upload-artifact@v2
316+
uses: actions/upload-artifact@v4
296317
if: success() || failure()
297318
with:
298-
name: test-results
319+
name: test-results-${{ matrix.java-version }}-${{ matrix.scylla-version }}
299320
path: "*/**/target/*-reports/*.xml"
300321

301322
- name: Upload CCM logs
302-
uses: actions/upload-artifact@v2
323+
uses: actions/upload-artifact@v4
303324
if: ${{ failure() }}
304325
with:
305-
name: ccm-logs-scylla-${{ matrix.scylla-version }}
326+
name: ccm-log-scylla-${{ matrix.java-version }}-${{ matrix.scylla-version }}
306327
path: /tmp/ccm*/ccm*/node*/logs/*

0 commit comments

Comments
 (0)