From e0a1a2303888db72ec42c608bc66389b333f2ebb Mon Sep 17 00:00:00 2001 From: Maxim Nesen Date: Wed, 13 Mar 2024 13:26:21 +0100 Subject: [PATCH] GitHub action validations added Signed-off-by: Maxim Nesen --- .github/workflows/maven.yml | 10 ++-- .github/workflows/validate.yml | 99 ++++++++++++++++++++++++++++++++++ etc/config/checkstyle.xml | 4 +- etc/config/copyright-exclude | 1 + etc/scripts/apidocs.sh | 3 ++ etc/scripts/checkstyle.sh | 3 ++ etc/scripts/copyright.sh | 13 +++++ etc/scripts/test-archetypes.sh | 3 ++ 8 files changed, 129 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/validate.yml create mode 100755 etc/scripts/apidocs.sh create mode 100755 etc/scripts/checkstyle.sh create mode 100755 etc/scripts/copyright.sh create mode 100755 etc/scripts/test-archetypes.sh 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