Skip to content

PMD -> Avoid ArrayList in the code #63

PMD -> Avoid ArrayList in the code

PMD -> Avoid ArrayList in the code #63

Workflow file for this run

name: Build and Test
on:
push:
branches: ["main"]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: maven
- name: Set up Maven settings
run: |
cat > ~/.m2/settings.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<!--This sends everything else to /public -->
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>external:*</mirrorOf>
<url>https://production.eng.it/nexus/content/groups/alm-eng-esl-mirror/
</url>
</mirror>
</mirrors>
<servers>
<server>
<id>almesl-snapshots</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
<server>
<id>almesl-releases</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
<server>
<id>nexus</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>almesl-snapshots</id>
<url>https://production.eng.it/nexus/content/repositories/snapshots/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>almesl-releases</id>
<url>https://production.eng.it/nexus/content/repositories/releases/
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://production.eng.it/nexus/content/groups/alm-eng-esl-mirror/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
EOF
- name: Build with Maven
run: mvn -B install --file pom.xml
test:
name: Test
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: maven
- name: Set up Maven settings
run: |
cat > ~/.m2/settings.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<!--This sends everything else to /public -->
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>external:*</mirrorOf>
<url>https://production.eng.it/nexus/content/groups/alm-eng-esl-mirror/
</url>
</mirror>
</mirrors>
<servers>
<server>
<id>almesl-snapshots</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
<server>
<id>almesl-releases</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
<server>
<id>nexus</id>
<username>${{ vars.ENG_LDAP_USERNAME }}</username>
<password>${{ secrets.ENG_LDAP_PASSWORD }}</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>almesl-snapshots</id>
<url>https://production.eng.it/nexus/content/repositories/snapshots/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>almesl-releases</id>
<url>https://production.eng.it/nexus/content/repositories/releases/
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://production.eng.it/nexus/content/groups/alm-eng-esl-mirror/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
EOF
- name: Test with Maven
run: mvn -B test --file pom.xml
pmd_job:
name: Static Code Analyzer
runs-on: ubuntu-latest
needs: [test]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: maven
- name: Generate PMD report
id: generate-pmd-report
uses: pmd/pmd-github-action@v2
with:
#rulesets: 'rulesets/java/quickstart.xml'
rulesets: './src/main/resources/rulesets/java/pmd-dome.xml'
sourcePath: 'src/main/java'
analyzeModifiedFilesOnly: false
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: pmd-report.sarif
- name: Fail build if there are violations
if: steps.generate-pmd-report.outputs.violations > 0
run: exit 1