diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 648024318b..1aaf84877a 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation
+# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
@@ -10,7 +10,7 @@
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#
-name: Jersey
+name: Eclipse Required License Check
on: [push, pull_request]
@@ -29,11 +29,11 @@ jobs:
steps:
- name: Checkout for build
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4.1.0
with:
distribution: 'zulu'
java-version: ${{ matrix.java_version }}
@@ -44,7 +44,7 @@ jobs:
- name: Build
run: mvn -V -U -B ${{matrix.verify_profiles}} org.eclipse.dash:license-tool-plugin:license-check -DexcludeArtifactIds=bsh,jmh-core,jmh-generator-annprocess,swing-layout
- name: Upload license-check info
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: license-summary.txt
path: target/dash/summary
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
new file mode 100644
index 0000000000..5748a52197
--- /dev/null
+++ b/.github/workflows/validate.yml
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 2024 Contributors to the Eclipse Foundation
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v. 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0,
+# or the Eclipse Distribution License v. 1.0 which is available at
+# http://www.eclipse.org/org/documents/edl-v10.php.
+#
+# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+#
+
+name: "Validate"
+
+on: [pull_request, push]
+
+env:
+ JAVA_VERSION: '8'
+ JAVA_DISTRO: 'temurin'
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ copyright:
+ timeout-minutes: 10
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Set up JDK ${{ env.JAVA_VERSION }}
+ uses: actions/setup-java@v4.1.0
+ with:
+ distribution: ${{ env.JAVA_DISTRO }}
+ java-version: ${{ env.JAVA_VERSION }}
+ cache: maven
+ - name: Copyright
+ run: etc/scripts/copyright.sh
+ - name: Upload copyright info
+ uses: actions/upload-artifact@v4
+ with:
+ name: copyright_results
+ path: copyright.log
+ retention-days: 5
+ checkstyle:
+ timeout-minutes: 10
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK ${{ env.JAVA_VERSION }}
+ uses: actions/setup-java@v4.1.0
+ with:
+ distribution: ${{ env.JAVA_DISTRO }}
+ java-version: ${{ env.JAVA_VERSION }}
+ cache: maven
+ - name: Checkstyle
+ run: etc/scripts/checkstyle.sh
+ - name: Upload checkstyle info
+ uses: actions/upload-artifact@v4
+ with:
+ name: checkstyle_results
+ path: target/checkstyle/checkstyle-result.xml
+ retention-days: 5
+ apidocs:
+ timeout-minutes: 30
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4.1.0
+ with:
+ distribution: ${{ env.JAVA_DISTRO }}
+ java-version: 17
+ cache: maven
+ - name: Build JDK17+ required modules
+ run: mvn -B -U -V clean install -DskipTests -pl :jersey-helidon-connector -am
+ - name: Set up JDK ${{ env.JAVA_VERSION }}
+ uses: actions/setup-java@v4.1.0
+ with:
+ distribution: ${{ env.JAVA_DISTRO }}
+ java-version: ${{ env.JAVA_VERSION }}
+ cache: maven
+ - name: Build ApiDocs
+ run: etc/scripts/apidocs.sh
+ archetypes:
+ timeout-minutes: 45
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK ${{ env.JAVA_VERSION }}
+ uses: actions/setup-java@v4.1.0
+ with:
+ distribution: ${{ env.JAVA_DISTRO }}
+ java-version: ${{ env.JAVA_VERSION }}
+ cache: maven
+ - name: Test archetypes
+ run: etc/scripts/test-archetypes.sh
\ No newline at end of file
diff --git a/etc/config/checkstyle.xml b/etc/config/checkstyle.xml
index 36a7defdce..52d0455005 100644
--- a/etc/config/checkstyle.xml
+++ b/etc/config/checkstyle.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/etc/config/copyright-exclude b/etc/config/copyright-exclude
index 9577477db3..e892508796 100644
--- a/etc/config/copyright-exclude
+++ b/etc/config/copyright-exclude
@@ -41,6 +41,7 @@ jaxb.index
/etc/config/copyright.txt
/etc/config/edl-copyright.txt
/etc/jenkins/
+/etc/scripts
/etc/travis/
/LICENSE.md
/third-party-license-readme.txt
diff --git a/etc/scripts/apidocs.sh b/etc/scripts/apidocs.sh
new file mode 100755
index 0000000000..12b2364247
--- /dev/null
+++ b/etc/scripts/apidocs.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -U -V -B clean install -Ppre-release -pl :apidocs -am -DskipTests
\ No newline at end of file
diff --git a/etc/scripts/checkstyle.sh b/etc/scripts/checkstyle.sh
new file mode 100755
index 0000000000..ad36942e5e
--- /dev/null
+++ b/etc/scripts/checkstyle.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -V -U -B checkstyle:checkstyle-aggregate -Dcheckstyle.output.format="plain" -Dcheckstyle.output.file=checkstyle.log
\ No newline at end of file
diff --git a/etc/scripts/copyright.sh b/etc/scripts/copyright.sh
new file mode 100755
index 0000000000..a874923f1c
--- /dev/null
+++ b/etc/scripts/copyright.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+readonly CP_PATTERN='Copyright year is wrong'
+
+
+[[ -n ${1} ]] && readonly LOG_FILE=${1} || readonly LOG_FILE='copyright.log'
+
+
+echo ${LOG_FILE}
+
+mvn -U -B glassfish-copyright:copyright -Dcopyright.quiet=false | grep "${CP_PATTERN}" | tee ${LOG_FILE}
+
+grep "${CP_PATTERN}" ${LOG_FILE} || exit 0 && exit 1
\ No newline at end of file
diff --git a/etc/scripts/test-archetypes.sh b/etc/scripts/test-archetypes.sh
new file mode 100755
index 0000000000..8ac27e3aa9
--- /dev/null
+++ b/etc/scripts/test-archetypes.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -U -V -B clean install -pl org.glassfish.jersey.archetypes:project
\ No newline at end of file