Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: CI ThingsBoard

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:

jobs:
build-and-test:
runs-on: ubuntu-latest
timeout-minutes: 30

services:
postgres:
image: postgres:13
env:
POSTGRES_DB: thingsboard
POSTGRES_USER: postgre
POSTGRES_PASSWORD: postgre
ports:
- 5432:5432
options: >-
--health-cmd="pg_isready -U postgre -d thingsboard"
--health-interval=10s
--health-timeout=5s
--health-retries=10

steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
cache: maven

- name: Build ThingsBoard (tests may fail)
run: |
mvn clean test -DskipTests=false
continue-on-error: true # 👈 clé importante


quality-bonus-pmd:
runs-on: ubuntu-latest
needs: build-and-test
if: always() # 👈 PMD s’exécute même si le build échoue

steps:
- uses: actions/checkout@v4

- name: Download PMD
run: |
curl -L -o pmd.zip https://github.com/pmd/pmd/releases/download/pmd_releases%2F7.0.0/pmd-dist-7.0.0-bin.zip
unzip -q pmd.zip

- name: Run PMD complexity analysis
run: |
./pmd-bin-7.0.0/bin/pmd check -d ./ -R pmd-ruleset.xml -f text
continue-on-error: true

21 changes: 21 additions & 0 deletions common/pmd-ruleset.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="TP1-Maintenability-Complexity"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://pmd.sourceforge.net/ruleset/2.0.0
https://pmd.sourceforge.io/ruleset_2_0_0.xsd">

<description>
Règles PMD pour évaluer la maintenabilité du code Java
via la complexité cyclomatique.
</description>

<rule ref="category/java/design.xml/CyclomaticComplexity">
<properties>
<!-- Seuil de complexité cyclomatique -->
<property name="reportLevel" value="10"/>
</properties>
</rule>

</ruleset>
Loading