.github/workflows/static-analysis.yml

Summary

Maintainability
Test Coverage
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Static Analysis

on: [ push, pull_request ]
#  push:
#    branches: [ master ]
#  pull_request:
#    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4
    - name: Set up JDK 11
      uses: actions/setup-java@v4
      with:
        distribution: 'zulu'
        java-version: 11
    - name: Cache Maven packages
      uses: actions/cache@v4
      with:
        path: ~/.m2
        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ runner.os }}-m2
    - name: Build with Maven
      run: |
        # compile with ECJ for warnings or errors
        mvn antrun:run -Danttarget=tests-warnings-check
        # run Spotbugs and Checkstyle
        mvn clean test -U -P travis-spotbugs --batch-mode --file=pom.xml
        # run Javadoc
        mvn javadoc:javadoc -U --batch-mode --file=pom.xml
        # check html
        mvn exec:exec -P travis-scanhelp --file=pom.xml
        # check properties
        mvn antrun:run -Danttarget=checkPropertiesFiles
        #run Architecture tests
        mvn -Dtest=jmri.ArchitectureTest,jmri.TestArchitectureTest,jmri.util.FileLineEndingsCheck test --file=pom.xml
        # Test if stale sources exists
        ./scripts/test_stale_sources.sh