From d9c3d93fdcf0faffe7a457e3292153961bc5f745 Mon Sep 17 00:00:00 2001 From: Alfredo Gutierrez Date: Thu, 11 Jul 2024 17:33:24 -0600 Subject: [PATCH] CI Test Check for Style guidelines using Spotless plugin (#43) Signed-off-by: Alfredo Gutierrez --- .github/workflows/spotless-check.yml | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/spotless-check.yml diff --git a/.github/workflows/spotless-check.yml b/.github/workflows/spotless-check.yml new file mode 100644 index 00000000..16e392d1 --- /dev/null +++ b/.github/workflows/spotless-check.yml @@ -0,0 +1,67 @@ +## +# Copyright (C) 2024 Hedera Hashgraph, LLC +# +# 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. +## + +name: Spotless Check + +on: [pull_request] + +jobs: + spotless: + runs-on: ubuntu-latest + + steps: + - name: Harden Runner + uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1 + with: + egress-policy: audit + + - name: Checkout code + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + fetch-depth: 0 + + - name: Expand Shallow Clone for Spotless + run: | + if [ -f .git/shallow ]; then + git fetch --unshallow --no-recurse-submodules + else + echo "Repository is not shallow, no need to unshallow." + fi + + - name: Set up JDK 21 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 + with: + distribution: 'temurin' + java-version: '21' + + - name: Cache Gradle packages + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Run Spotless Check + run: | + ./gradlew spotlessCheck + if [ $? -ne 0 ]; then + echo "Spotless found formatting issues. Please run './gradlew spotlessApply' to fix them." + exit 1 + fi + continue-on-error: false