Project

General

Profile

Actions

Task #90

closed

Automating development process

Added by Martin Karcol over 8 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Martin Karcol
Category:
Infrastructure
Target version:
Start date:
08/12/2016
Due date:
% Done:

100%

Estimated time:
Owner:

Description

Configuring Jenkins with Maven and Nexus to simplify whole development process

Actions #1

Updated by Martin Karcol over 8 years ago

Jenkins configuration:
- setting target GIT repository and branch to build
- build periodically every midnight
- setting default pom.xml (with goals and options)
- publishing PMD analysis results
- deploying snapshots in nexus repository
- email notifications for every unstable build
- Post build-actions (only after succesfull build): deploy war on remote tomcat server

Actions #2

Updated by Martin Karcol over 8 years ago

Actions #3

Updated by Martin Karcol over 8 years ago

Documenting (GIT, maven plugins) and jenk configurations, studying usage of 3rd part libs from nexus

Actions #4

Updated by Martin Karcol over 8 years ago

Configuring nexus as proxy repository for all 3rd part libries and caching them.
Writing introdcution into documentation.

Actions #5

Updated by Martin Karcol over 8 years ago

New module gui was created in backend section with its own pom.file, to deploy frontend into war file.

Actions #6

Updated by Martin Karcol over 8 years ago

I had to reconfigure gui pom.xml so it is now deployable on jenkins. I had to use frontend-maven-plugin, which installed needed dependencies (node, npm etc.). Profiles were added into pom.xml since it doesnt inherit them from parent.

Actions #7

Updated by Martin Karcol over 8 years ago

Modules section in parent pom.xml was deleted, so i split jenkins job into more, each representing single module. These jobs were specificaly configured to run in specific order. First module to build (parent) is triggered by pushing into github. Changes were documented.

Actions #8

Updated by Martin Karcol over 8 years ago

new module "module-aggregator" is used to simplify buidling of project into one cli command (mvn clean install). It works only as aggregator of other modules (contains section modules)

Actions #9

Updated by Martin Karcol over 8 years ago

  • Npm proxying through nexus is succusefully set by file .npmrc, where is defined nexus repository.
  • Module-aggregator is modified, so it can be used to release product simply by typing two commands (more information about releasing is in documentation)
  • All changes are merged on master and tested. Documentation is completed.
Actions #10

Updated by Martin Karcol about 8 years ago

Build is adjusted after modularity changes. Used commands in automated build are adapted for windows/linux

Actions #11

Updated by Martin Karcol about 8 years ago

  • "warning: possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit." during downlading node_modules packages was cause by* using npm v3.10.7*... Problem was solved by downgrading to v3.6.0
  • TODO?
    Currently symlinks of modules needs to be created manualy before build. (Maven AntRun plugin / Maven Exec plugin may help to automize process)

---------------
[INFO] [11:26:14] Main application less: [ 'src/css/main.less' ]
[INFO] [11:26:14] Less for include to main: [ '/home/kari/CzechIdMng/Realization/frontend/czechidm-app/node_modules/czechidm-core/src/css/main.less',
[INFO] '/home/kari/CzechIdMng/Realization/frontend/czechidm-app/dist/images',
[INFO] '/home/kari/CzechIdMng/Realization/frontend/czechidm-app/node_modules/czechidm-core/themes/default/css/main.less' ]
[INFO] [11:26:14] gulp-inject 3 files into main.less.
[INFO] [11:26:14] Finished 'styles' after 64 ms
[INFO] [11:26:14] Starting 'htmlReplace'...
[ERROR]
[ERROR] /home/kari/CzechIdMng/Realization/frontend/node_modules/when/lib/decorators/unhandledRejection.js:80
[ERROR] throw e;
[ERROR] ^
[ERROR] Error: '/home/kari/CzechIdMng/Realization/frontend/czechidm-app/dist/images.less' wasn't found. Tried - /home/kari/CzechIdMng/Realization/frontend/czechidm-app/dist/images.less in file /home/kari/CzechIdMng/Realization/frontend/czechidm-app/node_modules/czechidm-core/themes/default/css/main.less line no. null

This error happens randomly during build of frontend only on my ntb. Never found cause


inline comments added into pomms

Actions #12

Updated by Radek Tomiška about 8 years ago

  • Category set to Infrastructure
  • Status changed from In Progress to Closed
  • Target version set to Beryl
  • % Done changed from 0 to 100

Build is working now, documentation could be found https://proj.bcvsolutions.eu/ngidm/doku.php?id=navrh:ci_cd.

Actions

Also available in: Atom PDF