Task #90
closedAutomating development process
Added by Martin Karcol over 8 years ago. Updated about 8 years ago.
100%
Description
Configuring Jenkins with Maven and Nexus to simplify whole development process
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
Updated by Martin Karcol over 8 years ago
dokumentace postupně přidávána do https://proj.bcvsolutions.eu/ngidm/doku.php?id=navrh:ci_cd
Updated by Martin Karcol over 8 years ago
Documenting (GIT, maven plugins) and jenk configurations, studying usage of 3rd part libs from nexus
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.
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.
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.
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.
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)
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.
Updated by Martin Karcol about 8 years ago
Build is adjusted after modularity changes. Used commands in automated build are adapted for windows/linux
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
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.