Select
Agenda
- Select
- Node Express Application
- Developent
- Unit Test Process
- Build Process
- Deploy Process
- Sirius Config (2 min)
Select Pipeline
Components of Select
Two Node Express Applications: Score and App
Select Dev Environment
Mac OS X or Linux (Vagrant or Docker)
Vagrant (VirtualBox)
- build script dev (teamcity)
- system dev/testing (devops)
- docker on Linux (devops or dev)
- other troubleshooting
DockerMachine (VirtualBox)
- Development (dev)
- Unit Tests (dev and CI)
- Docker Testing (devops)
- Other Tests
Select Dev Pipeline
Tools in the Pipeline
RubyMine (Rails and Node platforms)
- direct Mac OS X or Linux (docker)
- unit test front end
- command line
Team City (Build System)
- unit test (teamcity mocha reporting)
- build (docker hub)
- deploy (remote ssh - ansible)
Build Tools
Node
Node vs. NVM
- NVM (Node Version Manager)
- results vary
- Node Package Repo (Linux)
- only major version, 4.x
- HomeBrew (Mac OS X)
- only latest stable
NPM
Node Package Manager
{
"name": "express_pony",
"version": "1.0.1",
"description": "Pony Express App",
"author": "Rainbow Brite <rbrite@gobalto.com>",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
}
}
Grunt
Task Manager
module.exports = function(grunt){
grunt.initConfig({
ngconstant: {
options:{
name: 'config',
dest: 'static/shared/javascripts/config/config.js'
},
dev: {
constants: { ...}
},
test: {
constants: { ... }
},
prod: {
constants: { ... }
}
},
"bower-install-simple":{
dev: { options:{ production: false } },
test: { options:{ production: false } },
prod: { options:{ production: true } } }
});
grunt.loadNpmTasks('grunt-bower-install-simple');
grunt.loadNpmTasks('grunt-ng-constant');
grunt.registerTask('configure:prod','ngconstant:prod');
grunt.registerTask('configure:test','ngconstant:test');
grunt.registerTask('configure:dev','ngconstant:dev');
grunt.registerTask('configure','configure:dev');
grunt.registerTask('dev',['configure:dev','bower-install-simple:dev']);
grunt.registerTask('test',['configure:test','bower-install-simple:test']);
grunt.registerTask('prod',['configure:prod','bower-install-simple:prod']);
// Added by DevOps for Docker build optimization
grunt.registerTask('prod-no-bower',['configure:prod']);
grunt.registerTask('test-no-bower',['configure:test']);
grunt.registerTask('dev-no-bower',['configure:prod']);
grunt.registerTask('default',['dev']);
};
Bower
Front End Modules
{
"name": "Select",
"version": "15.3.0",
"dependencies": {
"bootstrap": "~3.3.5",
"angular": "~1.4.3",
"angular-route": "~1.4.3",
"jquery": "~2.1.4",
"angular-resource": "~1.4.3",
"angular-ui-grid": "3.1.1",
"angular-bootstrap": "~0.14.0",
"ngUpload": "~0.5.17",
"highcharts-release": "~4.1.9",
"angular-filter": "~0.5.8",
"angular-animate": "~1.4.8",
"angular-filepicker": "~1.1.3",
"angular-drag-and-drop-lists": "~1.3.0",
"lodash": "^4.0.0",
"ng-idle": "~1.1.1",
"textAngular": "~1.5.0",
"font-awesome": "fontawesome#~4.6.1",
"angular-ui-tab-scroll": "~2.2.7"
},
"resolutions": {
"angular": "1.4.3"
}
}
GoBalto Select
By Joaquín Menchaca
GoBalto Select
- 1,027