PMD -> Avoid ArrayList in the code #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |