Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 48 additions & 17 deletions .github/workflows/maven.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,50 @@ on:
branches: [ "master" ]

jobs:
# Compile once on the minimum supported JDK and share artifacts with test jobs
build:
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10'
- name: Set up JDK 17
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: 17
- name: Ensure a clean state without storm artifacts
run: rm -rf ~/.m2/repository/org/apache/storm
- name: Build project (compile + install, skip tests)
run: /bin/bash ./dev-tools/gitact/gitact-install.sh `pwd`
- name: RAT license check
run: |
rm -f install.txt storm-shaded-deps/install-shade.txt
mvn --batch-mode apache-rat:check -Prat
- name: Upload Storm artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: storm-build-artifacts
path: ~/.m2/repository/org/apache/storm/
retention-days: 1

# Run tests on multiple JDKs using pre-built artifacts from the build job
test:
needs: build
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
timeout-minutes: 45
strategy:
matrix:
os: [ ubuntu-latest ]
java: [ 17, 21, 25 ]
module: [ Client, Server, Core, External, Integration-Test ]
experimental: [false]
Expand All @@ -40,29 +78,22 @@ jobs:
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Download Storm artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: storm-build-artifacts
path: ~/.m2/repository/org/apache/storm/
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10'
- name: Set up Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- name: Set up Ruby
uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 # v1.299.0
with:
ruby-version: '2.7'
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: ${{ matrix.java }}
- name: Ensure a clean state without storm artifacts
run: rm -rf ~/.m2/repository/org/apache/storm
- name: Set up project dependencies
run: /bin/bash ./dev-tools/gitact/gitact-install.sh `pwd`
- name: Run build
- name: Run tests
run: |
export JDK_VERSION=${{ matrix.java }}
export JDK_VERSION=${{ matrix.java }}
export USER=github
/bin/bash ./dev-tools/gitact/gitact-script.sh `pwd` ${{ matrix.module }};
/bin/bash ./dev-tools/gitact/gitact-test.sh `pwd` ${{ matrix.module }};
8 changes: 0 additions & 8 deletions .github/workflows/nightlies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ jobs:
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10'
- name: Set up Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 16
- name: Set up Ruby
uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 # v1.299.0
with:
ruby-version: '2.7'
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/snapshots.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ jobs:
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10'
- name: Set up Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 16
- name: Set up Ruby
uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 # v1.299.0
with:
ruby-version: '2.7'
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
Expand Down
60 changes: 60 additions & 0 deletions dev-tools/gitact/gitact-test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/bin/bash
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Test-only script for CI. Expects pre-built artifacts in the local Maven
# repository (provided by the build job via upload/download-artifact).

echo "Python3 version: " $(python3 -V 2>&1)
echo "Maven version : " $(mvn -v)

set -x

STORM_SRC_ROOT_DIR=$1

THIS_SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

cd "${STORM_SRC_ROOT_DIR}" || (echo "Cannot cd to ${STORM_SRC_ROOT_DIR}"; exit 1)

if [ "$2" == "Integration-Test" ]
then
exec ./integration-test/run-it.sh
elif [ "$2" == "Check-Updated-License-Files" ]
then
exec python3 dev-tools/validate-license-files.py --skip-build-storm
elif [ "$2" == "Client" ]
then
TEST_MODULES=storm-client
elif [ "$2" == "Server" ]
then
TEST_MODULES=storm-server,storm-webapp
elif [ "$2" == "Core" ]
then
TEST_MODULES=storm-core
elif [ "$2" == "External" ]
then
TEST_MODULES='!storm-client,!storm-server,!storm-core,!storm-webapp,!storm-shaded-deps'
fi

export STORM_TEST_TIMEOUT_MS=150000
export MAVEN_OPTS="-Xmx2048m"

mvn --batch-mode test -fae -Pnative,all-tests,examples,externals -pl "$TEST_MODULES"
BUILD_RET_VAL=$?

for dir in $(find . -type d -and -wholename \*/target/\*-reports)
do
echo "Looking for errors in ${dir}"
python3 "${THIS_SCRIPT_DIR}"/print-errors-from-test-reports.py "${dir}"
done

exit ${BUILD_RET_VAL}
Loading