Skip to content

Commit 1ff1f25

Browse files
authored
Introduce weekly CI build for comprehensive testing, and limit multi os/jvm to only the quick profile (#1678)
1 parent 4809b1e commit 1ff1f25

File tree

3 files changed

+101
-3
lines changed

3 files changed

+101
-3
lines changed

.github/workflows/ci-nightly.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18+
#
19+
# This build runs every 6 hours. It runs the same tests as ci-quick.yaml but on a schedule (4 times a day).
20+
# The goal here is to run the same as ci-quick.yaml but on a schedule to make sure we catch any issue that may be
21+
# introduced in the main branch as soon as possible.
22+
# This build is also used to validate the build on various os (Ubuntu, Windows, MacOS) and various Java versions (17, 21, 25)
23+
# on a regular basis to make sure we catch any issue that may be introduced by a change in the build or in the dependencies.
24+
#
1825
name: CI Nightly
1926

2027
on:
@@ -69,7 +76,7 @@ jobs:
6976
java-version: ${{ matrix.java-version }}
7077
distribution: temurin
7178
- name: Test
72-
run: mvn -B -e -fae verify
79+
run: mvn -B -e -fae verify -Pactivemq.tests-quick
7380
- name: Upload Test Results
7481
if: (!cancelled())
7582
uses: actions/upload-artifact@v4

.github/workflows/ci-quick.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18+
#
19+
# This is our most used build and the one used when a new PR is created/updated. It needs to
20+
# be and remain as green as possible. It is also executed when a PR is actually merged to make sure
21+
# apache/main stays stable. It runs a subset of the tests (the ones in the quick profile) to make sure it finishes
22+
# in a reasonable time.
23+
#
1824
name: CI Quick
1925

2026
on:
@@ -64,8 +70,7 @@ jobs:
6470
- name: Set up JDK
6571
uses: actions/setup-java@v4
6672
with:
67-
# temporary using 25 until all tests pass on Java 25 - to be changed back to 17 for quick. 25 will run nightly only
68-
java-version: 25
73+
java-version: 17
6974
distribution: temurin
7075
- name: Test
7176
run: mvn -B -e -fae verify -Pactivemq.tests-quick

.github/workflows/ci-weekly.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
#
19+
# This build runs manually for now. It takes a very long time to run, so until we can
20+
# work on the stability to make it scheduled weekly, we'd better run it manually.
21+
# The build does the same as ci-quickly.yaml but runs all the possible tests
22+
# (as opposed to quick profile only for the other one running on PR/Merge)
23+
#
24+
name: CI Weekly (on-demand)
25+
26+
on:
27+
28+
jobs:
29+
build:
30+
name: build
31+
32+
permissions:
33+
contents: read
34+
35+
strategy:
36+
matrix:
37+
os: [ ubuntu-24.04, macos-26, windows-2025 ]
38+
java-version: [ 17, 21, 25 ]
39+
40+
runs-on: ${{ matrix.os }}
41+
42+
steps:
43+
- uses: actions/checkout@v4
44+
- name: Set up JDK
45+
uses: actions/setup-java@v4
46+
with:
47+
java-version: ${{ matrix.java-version }}
48+
distribution: temurin
49+
- name: Build
50+
run: mvn -U -B -e clean install -DskipTests
51+
- name: Verify
52+
run: mvn apache-rat:check
53+
54+
test:
55+
name: test
56+
57+
permissions:
58+
contents: read
59+
checks: write
60+
pull-requests: write
61+
62+
runs-on: ubuntu-24.04
63+
64+
steps:
65+
- uses: actions/checkout@v4
66+
- name: Set up JDK
67+
uses: actions/setup-java@v4
68+
with:
69+
java-version: 17
70+
distribution: temurin
71+
- name: Test
72+
run: mvn -B -e -fae verify
73+
- name: Upload Test Results
74+
if: (!cancelled())
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: test-results
78+
path: '**/target/surefire-reports/*.xml'
79+
- name: Publish Test Results
80+
if: (!cancelled())
81+
uses: EnricoMi/publish-unit-test-result-action@v2
82+
with:
83+
large_files: true
84+
report_individual_runs: true
85+
report_suite_logs: error
86+
files: '**/target/surefire-reports/*.xml'

0 commit comments

Comments
 (0)