diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 00000000..6581b2f6
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,32 @@
+# Copyright (C) 2022 WYATT GROUP
+# Please see the AUTHORS file for details.
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+kind: pipeline
+type: docker
+name: build
+
+steps:
+- name: build
+  image: git.wyatt-studio.fr/wyatt-foss/flutter-melos:2.9.0
+  commands:
+  - melos run quality-check
+  - melos run publish:validate
+
+trigger:
+  branch:
+  - master
+  event:
+  - push
\ No newline at end of file
diff --git a/README.md b/README.md
index babeca68..b6ec3314 100644
--- a/README.md
+++ b/README.md
@@ -171,10 +171,16 @@ Note that your issue will be close after merging on master.
 Before closing the issue, please check tests and update coverage. You might run :
 
 ```shell
-melos run test
-melos run gen_coverage
+melos run test:all # this will run all tests in this project
+melos run gen-coverage # this will generate coverage report
+melos run gen-class-models # this will generate plantuml class diagrams
+melos run quality-check # this will run all targets generally expected in CI
+melos run publish:validate # this will run a validation before publish packages
+melos run publish # this will publish packages
 ```
 
+> Note that only modified package will be verified and published.
+
 #### Merge your work
 
 After closing your issue, some work may have been done on master in the meantime. To keep a clean git history, please rebase before opening a change request.
diff --git a/melos.yaml b/melos.yaml
index 5d814ff0..3430ffd7 100644
--- a/melos.yaml
+++ b/melos.yaml
@@ -21,8 +21,7 @@ scripts:
 
   analyze:
     run: |
-      melos exec -c 10 -- \
-        flutter analyze --fatal-infos
+      melos exec -c 1 -- flutter analyze --fatal-infos
     description: Run `flutter analyze` for all packages.
 
   format:
@@ -38,18 +37,38 @@ scripts:
     description: Clean things very deeply with `git clean`.
 
   test:selective_unit_test:
-    run: melos exec --dir-exists="test" -- flutter test --no-pub --coverage
+    run: melos exec -- flutter test --no-pub --coverage
     description: Run Flutter tests for a specific package in this project.
     select-package:
-      flutter: true
+      dir-exists:
+        - test
+      ignore:
+        - '*example*'
 
-  test:
+  test:all:
     run: melos run test:selective_unit_test --no-select
     description: Run all Flutter tests in this project.
 
   gen-coverage: melos exec -- sh "\$MELOS_ROOT_PATH/combine_coverage.sh" && genhtml coverage/lcov.info -o coverage/html
 
-  gen-class-models: melos exec --scope="*wyatt_*" -- dart pub global run dcdg -o models/class-models.puml
+  gen-class-models: 
+    run: melos exec -- dart pub global run dcdg -o models/class-models.puml
+    select-package:
+      ignore:
+        - '*example*'
+
+  quality-check:
+    run: |
+      melos clean && \
+      melos bootstrap && \
+      melos run test:all
+    description: Run all targets generally expected in CI for a full local quality check.
+
+  publish:validate:
+    run: melos publish --diff="origin/$DRONE_COMMIT_BRANCH...HEAD" --yes
+  
+  # publish:
+  #   run: melos publish --diff="origin/$DRONE_COMMIT_BRANCH...HEAD" --no-dry-run --yes
   
   # Additional cleanup lifecycle script, executed when `melos clean` is run.
   postclean: >
diff --git a/packages/wyatt_architecture/test/wyatt_architecture_test.dart b/packages/wyatt_architecture/test/wyatt_architecture_test.dart
deleted file mode 100644
index dc7ea003..00000000
--- a/packages/wyatt_architecture/test/wyatt_architecture_test.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2022 WYATT GROUP
-// Please see the AUTHORS file for details.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-// Nothing to test as there is no logic in this package.
diff --git a/packages/wyatt_crud_bloc/test/wyatt_crud_bloc_test.dart b/packages/wyatt_crud_bloc/test/wyatt_crud_bloc_test.dart
deleted file mode 100644
index e69de29b..00000000
diff --git a/packages/wyatt_ui_components/test/wyatt_wyatt_ui_components_test.dart b/packages/wyatt_ui_components/test/wyatt_wyatt_ui_components_test.dart
deleted file mode 100644
index 1a98696c..00000000
--- a/packages/wyatt_ui_components/test/wyatt_wyatt_ui_components_test.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2022 WYATT GROUP
-// Please see the AUTHORS file for details.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-// TODO(wyatt): Add some tests
\ No newline at end of file