# HG changeset patch # User ymh # Date 1476720473 -7200 # Node ID 4cd0f8c936ed6d2530308cace6ea6397ad405da2 # Parent 4b66390442fdce12b77611110c4a3ab876cc4d29 upgrade build and delivery process for integration diff -r 4b66390442fd -r 4cd0f8c936ed build/build.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/build.sh Mon Oct 17 18:07:53 2016 +0200 @@ -0,0 +1,130 @@ +#!/usr/bin/env bash + +set -e +## option --prod/--dev + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +VAGRANT_STARTED=false + +green="\x1B[0;32m" # '\e[1;32m' is too bright for white bg. +blue="\x1B[1;34m" +endColor="\x1B[0m" + +function echoblue() { + echo -e "${blue}$1${endColor}" +} + +function install() { + pushd "$DIR" + + echoblue "---> preparing bo client" + pushd ../server/bo_client + npm install + ./node_modules/.bin/bower install + popd + echoblue "---> preparing bo client done" + + echoblue "---> preparing back" + pushd ../server/src + php composer.phar install + npm install + ./node_modules/.bin/bower install + popd + echoblue "---> preparing back done" + + echoblue "---> preparing app-client" + pushd ../cms/app-client + npm install + ./node_modules/.bin/bower install + popd + echoblue "---> preparing app-client done" + + echoblue "---> preparing module" + pushd ../cms + npm install + + + echoblue "---> checking vagrant" + if vagrant status | grep -q "running"; then + echoblue "---> starting vagrant" + vagrant up + VAGRANT_STARTED=true + fi + + echoblue "---> done" + + popd + +} + +function usage() { + cat <&2; exit 1; } || environment='production' ;; + d) [[ -n "$environment" ]] && { usage >&2; exit 1; } || environment='development' ;; + \?) usage >&2; exit 1 ;; + esac +done +shift $((OPTIND-1)) + +[[ -z "$environment" ]] && environment='production' + +case $environment in + development) build_option='--dev' ;; + *) build_option='--prod' ;; +esac + +echo "environment: $environment" +echo "do_install: $do_install" +[[ "$do_install" == true ]] && echoblue "DO INSTALL" && install; + +pushd "$DIR" + +echoblue "---> cleaning build folder" +rm -fr root + +echoblue "---> creating build folder" +mkdir -p root/var/www/corpusdelaparole/corpus-back +mkdir -p root/var/www/corpusdelaparole/drupal/sites/all/modules + +echoblue "---> buiding back" +pushd ../server/src +version=$(sed -n "s/[[:space:]]*\'version\'[[:space:]]*=>[[:space:]]*\'\([\.0-9]*\)\'/\1/p" config/version.php) +version=${version:-0.0.0} +./node_modules/.bin/gulp copy-build ${build_option} +popd +echoblue "---> buiding back done" + +echoblue "---> building app-client" +pushd ../cms/app-client +./node_modules/.bin/ember build ${build_option} +popd +echoblue "---> building app-client done" + +echoblue "---> building module" +pushd ../cms +./node_modules/.bin/gulp copy-build ${build_option} --version="$version" +popd + +echoblue "---> building package" +vagrant ssh -c "/vagrant/build_rpm.sh" + +echoblue "---> done" + +popd diff -r 4b66390442fd -r 4cd0f8c936ed build/build_rpm.sh --- a/build/build_rpm.sh Mon Oct 17 19:51:14 2016 +0530 +++ b/build/build_rpm.sh Mon Oct 17 18:07:53 2016 +0200 @@ -3,14 +3,21 @@ pushd /vagrant/root/var/www/corpusdelaparole/corpus-back/ echo "---> Launching composer" php composer.phar install --ignore-platform-reqs -o +echo "---> Optimizing config" +php artisan config:cache +echo "---> Optimizing route" +php artisan route:cache +echo "---> Clear views" +php artisan view:clear echo "---> Composer done" popd -pushd /vagrant +mkdir -p /vagrant/dist +pushd /vagrant/dist echo "---> Launching packaging" rm -f *.rpm #TODO: read version from corpus -version=$(grep -oP "\'version\'\s*=>\s*\'\K[\.0-9]+(?=\')" /vagrant/root/var/www/corpusdelaparole/corpus/config/version.php) +version=$(grep -oP "\'version\'\s*=>\s*\'\K[\.0-9]+(?=\')" /vagrant/root/var/www/corpusdelaparole/corpus-back/config/version.php) version=${version:-0.0.0} fpm \ @@ -34,5 +41,6 @@ --after-remove /vagrant/post_uninstall.sh \ --after-upgrade /vagrant/post_upgrade.sh \ . -echo "---> Packaging done." + +echo "---> Packaging done" popd diff -r 4b66390442fd -r 4cd0f8c936ed build/post_install.sh --- a/build/post_install.sh Mon Oct 17 19:51:14 2016 +0530 +++ b/build/post_install.sh Mon Oct 17 18:07:53 2016 +0200 @@ -1,3 +1,4 @@ #!/usr/bin/env sh +echo "Restart httpd" /usr/bin/systemctl restart httpd diff -r 4b66390442fd -r 4cd0f8c936ed build/post_uninstall.sh --- a/build/post_uninstall.sh Mon Oct 17 19:51:14 2016 +0530 +++ b/build/post_uninstall.sh Mon Oct 17 18:07:53 2016 +0200 @@ -1,3 +1,4 @@ #!/usr/bin/env sh +echo "Restart httpd" /usr/bin/systemctl restart httpd diff -r 4b66390442fd -r 4cd0f8c936ed build/post_upgrade.sh --- a/build/post_upgrade.sh Mon Oct 17 19:51:14 2016 +0530 +++ b/build/post_upgrade.sh Mon Oct 17 18:07:53 2016 +0200 @@ -1,3 +1,9 @@ #!/usr/bin/env sh +echo "Clear drupal cache" +if [ -x /usr/local/bin/drush ]; then + /usr/local/bin/drush -r /var/www/corpusdelaparole/drupal cc all +fi + +echo "Restart httpd" /usr/bin/systemctl restart httpd diff -r 4b66390442fd -r 4cd0f8c936ed cms/app-client/bower.json --- a/cms/app-client/bower.json Mon Oct 17 19:51:14 2016 +0530 +++ b/cms/app-client/bower.json Mon Oct 17 18:07:53 2016 +0200 @@ -13,7 +13,6 @@ "lodash": "~4.11.1", "Faker": "~3.1.0", "store": "https://github.com/marcuswestin/store.js.git#v1.3.20", - "popcorn-js": "popcornjs#^1.5.11", - "ember-qunit-notifications": "0.1.0" + "popcorn-js": "popcornjs#^1.5.11" } } diff -r 4b66390442fd -r 4cd0f8c936ed cms/corpus_module/corpus.info --- a/cms/corpus_module/corpus.info Mon Oct 17 19:51:14 2016 +0530 +++ b/cms/corpus_module/corpus.info Mon Oct 17 18:07:53 2016 +0200 @@ -1,4 +1,7 @@ name = Corpus Client description = Corpus de la Parole Client core = 7.x -version = 7.41 +php = 5.6 +; stylesheets +stylesheets[all][] = app-client/assets/vendor.css +stylesheets[all][] = app-client/assets/app-client.css diff -r 4b66390442fd -r 4cd0f8c936ed cms/corpus_module/corpus.module --- a/cms/corpus_module/corpus.module Mon Oct 17 19:51:14 2016 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ - 'Corpus de la Parole', - 'access callback' => TRUE, - 'page callback' => 'corpus_page', - 'type' => MENU_CALLBACK - ); - - return $items; -} - -/** - * The page callback function. Loads the Ember app - */ -function corpus_page() { - - $app = CORPUS_APP; - $path = drupal_get_path('module', 'corpus') . '/' . $app; - - $element = array( - '#tag' => 'base', // The #tag is the html tag - - '#attributes' => array( // Set up an array of attributes inside the tag - 'href' => '/'.CORPUS_URL.'/', - ), - ); - drupal_add_html_head($element, 'ember_init_base'); - - $element = array( - '#tag' => 'meta', // The #tag is the html tag - - '#attributes' => array( // Set up an array of attributes inside the tag - 'name' => 'app-client/config/environment', - 'content' => '%7B%22rootElement%22%3A%22%23corpus-app%22%2C%22modulePrefix%22%3A%22app-client%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/corpus%22%2C%22APP%22%3A%7B%22baseStatic%22%3A%22/'.drupal_get_path('module', 'corpus').'/app-client/%22%2C%22name%22%3A%22app-client%22%2C%22version%22%3A%220.0.0+%22%7D%2C%22contentSecurityPolicyHeader%22%3A%22Content-Security-Policy-Report-Only%22%2C%22contentSecurityPolicy%22%3A%7B%22default-src%22%3A%22%27none%27%22%2C%22script-src%22%3A%22%27self%27%20%27unsafe-eval%27%22%2C%22font-src%22%3A%22%27self%27%22%2C%22connect-src%22%3A%22%27self%27%22%2C%22img-src%22%3A%22%27self%27%22%2C%22style-src%22%3A%22%27self%27%22%2C%22media-src%22%3A%22%27self%27%22%7D%2C%22exportApplicationGlobal%22%3Atrue%7D' - ), - ); - - drupal_add_html_head($element, 'ember_init'); - - drupal_add_js("https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['treemap']}]}"); - drupal_add_js("{$path}/assets/vendor.js"); - drupal_add_css("{$path}/assets/vendor.css"); - drupal_add_css("{$path}/assets/{$app}.css"); - - drupal_add_js("{$path}/assets/{$app}.js", array('type' => 'file', 'scope' => 'footer')); - // drupal_add_js("{$path}/dist/assets/{$app}.js"); - - return "
"; -} diff -r 4b66390442fd -r 4cd0f8c936ed cms/corpus_module/corpus.module.tmpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/corpus_module/corpus.module.tmpl Mon Oct 17 18:07:53 2016 +0200 @@ -0,0 +1,196 @@ +'); +define('CORPUS_APP', 'app-client'); +define('CORPUS_APP_VERSION', '<%= version %>'); +define('CORPUS_ENV', '<%= environment %>'); +define('MODULE_NAME', basename(__FILE__, '.module')); + +/** + * Implements hook_menu(). + */ +function corpus_menu() { + + $items[CORPUS_URL] = array( + 'title' => 'Recherche', + 'description' => t('Corpus de la parole'), + 'weight' => -1, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-menu') + ) + ), + ); + $items[CORPUS_URL.'#/langues'] = array( + 'title' => 'Langues', + 'description' => t('Corpus de la parole'), + 'weight' => 0, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-sub-menu') + ) + ), + ); + $items[CORPUS_URL.'#/cartographie'] = array( + 'title' => 'Cartographie', + 'description' => t('Corpus de la parole'), + 'weight' => 1, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-sub-menu') + ) + ), + ); + $items[CORPUS_URL.'#/thematiques'] = array( + 'title' => 'Thematiques', + 'description' => t('Corpus de la parole'), + 'weight' => 2, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-sub-menu') + ) + ), + ); + $items[CORPUS_URL.'#/discours'] = array( + 'title' => 'Discours', + 'description' => t('Corpus de la parole'), + 'weight' => 3, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-sub-menu') + ) + ), + ); + $items[CORPUS_URL.'#/chronologie'] = array( + 'title' => 'Chronologie', + 'description' => t('Corpus de la parole'), + 'weight' => 4, + 'page callback' => 'corpus_page', + 'access arguments' => array(''), // permission + 'type' => MENU_NORMAL_ITEM, + 'menu_name' => 'main-menu', + 'options' => array( + 'attributes' => array( + 'class' => array('corpus-app-sub-menu') + ) + ), + ); + return $items; +} + +/** + * The page callback function. Loads the Ember app + */ +function corpus_page() { + + $app = CORPUS_APP; + $path = drupal_get_path('module', MODULE_NAME) . '/' . $app; + + $appEnvironment = array( + "rootElement" => "#corpus-app", + "modulePrefix" => CORPUS_APP, + "environment" => CORPUS_ENV, + "rootURL" => drupal_get_path('module', MODULE_NAME), + "locationType" => "hash", + "EmberENV" => array( + "FEATURES" => array() + ), + "APP" => array( + "backRootURL" => "/".CORPUS_BACK_URL."/", + "name" => "app-client", + "version" => CORPUS_APP_VERSION + ), + "exportApplicationGlobal" => false + ); + if(CORPUS_ENV === 'development') { + $appEnvironment["ember-cli-mirage"] = array( + "usingProxy" => false, + "useDefaultPassthroughs" => true + ); + } + + $element = array( + '#tag' => 'meta', // The #tag is the html tag - + '#attributes' => array( // Set up an array of attributes inside the tag + 'name' => 'app-client/config/environment', + 'content' => urlencode(json_encode($appEnvironment)) + ), + ); + + drupal_add_html_head($element, 'ember_init'); + + // drupal_add_css("{$path}/assets/vendor.css"); + // drupal_add_css("{$path}/assets/{$app}.css"); + drupal_add_js( + "if(typeof jQuery !== 'undefined') { + var jQueryOriginal = jQuery.noConflict(true); + + }", + array( + 'type' => 'inline', + 'scope' => 'footer', + 'group' => JS_THEME+1, + 'weight' => 1, + 'every_page' => true, + 'requires_jquery' => false + ) + ); + drupal_add_js( + "{$path}/assets/vendor.js", + array( + 'type' => 'file', + 'scope' => 'footer', + 'group' => JS_THEME+1, + 'weight' => 2, + 'every_page' => true, + 'requires_jquery' => false + ) + ); + drupal_add_js("{$path}/assets/{$app}.js", + array( + 'type' => 'file', + 'scope' => 'footer', + 'group' => JS_THEME+1, + 'weight' => 3, + 'every_page' => true, + 'requires_jquery' => false + ) + ); + drupal_add_js( + "if(typeof jQueryOriginal !== 'undefined') { + $ = jQueryOriginal; + jQuery = jQueryOriginal; + + }", + array( + 'type' => 'inline', + 'scope' => 'footer', + 'group' => JS_THEME+1, + 'weight' => 4, + 'every_page' => true, + 'requires_jquery' => false + ) + ); + + return "
"; +} diff -r 4b66390442fd -r 4cd0f8c936ed cms/gulpfile.js --- a/cms/gulpfile.js Mon Oct 17 19:51:14 2016 +0530 +++ b/cms/gulpfile.js Mon Oct 17 18:07:53 2016 +0200 @@ -1,13 +1,134 @@ -var gulp = require('gulp'); +const gulp = require('gulp'); +const del = require('del'); +const zip = require('gulp-zip'); +const merge = require('merge-stream'); +const seq = require('run-sequence'); +const exec = require('child_process').execSync; +const minimist = require('minimist'); +const template = require('gulp-template'); +const rename = require('gulp-rename'); + +const appBuildFolder = 'app-client/dist'; +const moduleFolder = 'corpus_module'; +const moduleBuildFolder = 'dist' +const buildDestFolder = '../build/root/var/www/corpusdelaparole/drupal/sites/all/modules/' + moduleFolder; + +const options = minimist(process.argv.slice(2), {string: "version"}); + +if(!options.version) { + return process.exit(2); +} -var buildFolder = 'app-client/dist'; -var moduleFolder = 'corpus_module'; +var buildOption = "--prod"; +var environment = "production"; +var corpusBackUrl = "corpus-back"; +if(options.prod) { + buildOption = "--prod"; + environment = "production"; + corpusBackUrl = "corpus-back"; +} else if(options.dev) { + buildOption = "--dev"; + environment = "development"; + corpusBackUrl = "corpus-app"; +} + +gulp.task('build-ember', function(cb) { + exec('npm install', { + cwd: '../app-client', + stdio:[0,1,2] + }); + exec('node_modules/.bin/bower install', { + cwd: '../app-client', + stdio:[0,1,2] + }); + exec('node_modules/.bin/ember build '+buildOption, { + cwd: '../app-client', + stdio:[0,1,2] + }); +}); + +gulp.task('clean', function() { + return del([ + moduleBuildFolder+'/'+moduleFolder+'/**/*', + moduleBuildFolder+'/**/*', + ]); +}); gulp.task('copy-module', function () { - gulp.src(buildFolder+'/assets/**/*') - .pipe(gulp.dest(moduleFolder+'/app-client/assets')); - gulp.src(buildFolder+'/fonts/**/*') - .pipe(gulp.dest(moduleFolder+'/app-client/fonts')); - gulp.src(moduleFolder+'/**/*') - .pipe(gulp.dest('../../../drupal-7.41/modules/corpus')); + var moduleFiles = gulp.src([moduleFolder+'/*', '!'+moduleFolder+'/*.tmpl']) + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder)); + + var templateValues = { + corpus_back_url: corpusBackUrl, + version: options.version, + environment: environment + }; + var tmplModuleFile = gulp.src(moduleFolder+'/corpus.module.tmpl') + .pipe(template(templateValues)) + .pipe(rename("corpus.module")) + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder)); + + var assetsFiles = gulp.src(appBuildFolder+'/assets/**/*') + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/assets')); + + var fontsFiles = gulp.src(appBuildFolder+'/fonts/**/*') + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/fonts')); + + return merge(moduleFiles, tmplModuleFile, assetsFiles, fontsFiles); + }); +gulp.task('zip-module', function() { + return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*') + .pipe(zip(moduleFolder+'.zip')) + .pipe(gulp.dest(moduleBuildFolder)); +}) + +gulp.task('default', function(cb) { + seq('clean', 'copy-module', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +}); + +gulp.task('zip', function(cb) { + seq('clean', 'copy-module', 'zip-module', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +}); + +gulp.task('do-copy-build', function(cb) { + return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*') + .pipe(gulp.dest(buildDestFolder)); +}); + +gulp.task('copy-build', function(cb) { + seq('clean', 'copy-module', 'do-copy-build', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +}); diff -r 4b66390442fd -r 4cd0f8c936ed cms/package.json --- a/cms/package.json Mon Oct 17 19:51:14 2016 +0530 +++ b/cms/package.json Mon Oct 17 18:07:53 2016 +0200 @@ -7,6 +7,13 @@ }, "author": "IRI", "devDependencies": { - "gulp": "^3.9.0" + "del": "^2.2.2", + "gulp": "^3.9.1", + "gulp-rename": "^1.2.2", + "gulp-template": "^4.0.0", + "gulp-zip": "^3.2.0", + "merge-stream": "^1.0.0", + "minimist": "^1.2.0", + "run-sequence": "^1.2.2" } } diff -r 4b66390442fd -r 4cd0f8c936ed dev/provisioning/modules/sysconfig/manifests/mariadb.pp --- a/dev/provisioning/modules/sysconfig/manifests/mariadb.pp Mon Oct 17 19:51:14 2016 +0530 +++ b/dev/provisioning/modules/sysconfig/manifests/mariadb.pp Mon Oct 17 18:07:53 2016 +0200 @@ -71,6 +71,7 @@ collate => 'utf8mb4_general_ci', require => Service["mariadb"], } + mysql::db { "corpus_db": dbname => $db_name, user => $db_user, diff -r 4b66390442fd -r 4cd0f8c936ed readme.md --- a/readme.md Mon Oct 17 19:51:14 2016 +0530 +++ b/readme.md Mon Oct 17 18:07:53 2016 +0200 @@ -38,16 +38,24 @@ - `php artisan serve` ## Creation de version -- mettre à jour le fichier version `/server/src/config/config/version.php` +- mettre à jour le fichier version `server/src/config/config/version.php` +- mettre à jour le fichier version `cms/app-client/package.json` - `cd /server/src` - s'assurer que les sources sont à jour: `php composer.phar install` + `npm install` + `bower install` -- `gulp` -- `gulp copy-to-build` +- `gulp copy-build` +- `cd /cms/app-client` +- `npm install` +- `bower install` +- `ember build --prod` ou `ember build` +- `cd /cms` +- `npm install` pour installer gulp + dépendances +- `gulp copy-build` - `cd /build` - `vagrant ssh -c "/vagrant/build_rpm.sh"` -- le fichier rpm se trouvera dans `/build` +- le fichier rpm se trouvera dans `/build/dist` ## installation rpm sur serveur - 1ère installation: `rpm -i /path/to/corpusdelaparole--.rpm` - Mise à jour: `rpm -U /path/to/corpusdelaparole--.rpm` - ensuite : création diu fichier `/etc/www/corpus_env.conf` +- après un update : drush cc all diff -r 4b66390442fd -r 4cd0f8c936ed server/src/gulpfile.js --- a/server/src/gulpfile.js Mon Oct 17 19:51:14 2016 +0530 +++ b/server/src/gulpfile.js Mon Oct 17 18:07:53 2016 +0200 @@ -1,33 +1,33 @@ -var gulp = require('gulp'), - elixir = require('laravel-elixir') - del = require('del'); - +var gulp = require('gulp'); +var elixir = require('laravel-elixir'); +var del = require('del'); +var seq = require('run-sequence'); +var minimist = require('minimist'); var exec = require('child_process').execSync; -/* - |-------------------------------------------------------------------------- - | Elixir Asset Management - |-------------------------------------------------------------------------- - | - | Elixir provides a clean, fluent API for defining some basic Gulp tasks - | for your Laravel application. By default, we are compiling the Less - | file for our application, as well as publishing vendor resources. - | - */ + +var options = minimist(process.argv.slice(2)); - var paths = { +var buildOption = "--prod"; +if(options.prod) { + buildOption = "--prod"; +} else if(options.dev) { + buildOption = "--dev"; +} + + +var paths = { 'bower_base_path': './vendor/bower_components/', 'bootstrap': './vendor/bower_components/bootstrap-sass/assets/' }; gulp.task('build-ember', function(cb) { - exec('node_modules/.bin/ember build -prod', { + exec('node_modules/.bin/ember build '+buildOption, { cwd: '../bo_client', stdio:[0,1,2] }); }); - gulp.task('copy-bo-ember', function() { gulp.src('../bo_client/dist/assets/*.js') .pipe(gulp.dest('public/js/vendor/')); @@ -40,12 +40,12 @@ }); -gulp.task('copy-to-build', function() { - del(['../../build/root'], {force: true}, function(err, files) { +gulp.task('do-copy-to-build', function() { + del(['../../build/root/var/www/corpusdelaparole/corpus-back/**/*'], {force: true}, function(err, files) { if(err) { return; } - gulp.src(['**/*','!vendor', '!vendor/**', '!node_modules', /*'!public/corpus-app', '!public/corpus-app/**',*/ '!node_modules/**', '!.env', '!.git*']) + gulp.src(['**/*','!vendor', '!vendor/**', '!node_modules', /*'!public/corpus-app', '!public/corpus-app/**',*/ '!node_modules/**', '!.env', '!.git*', '!bootstrap/cache/**']) .pipe(gulp.dest('../../build/root/var/www/corpusdelaparole/corpus-back/')) }); }); @@ -59,3 +59,8 @@ .task('build-ember') .task('copy-bo-ember'); }); + +gulp.task('copy-build', function(cb) { + return seq('default', 'do-copy-to-build', cb); +}); + diff -r 4b66390442fd -r 4cd0f8c936ed server/src/package.json --- a/server/src/package.json Mon Oct 17 19:51:14 2016 +0530 +++ b/server/src/package.json Mon Oct 17 18:07:53 2016 +0200 @@ -3,7 +3,9 @@ "devDependencies": { "bower": "^1.5.3", "gulp": "^3.8.8", - "gulp-exec": "^2.1.2" + "gulp-exec": "^2.1.2", + "minimist": "^1.2.0", + "run-sequence": "^1.2.2" }, "dependencies": { "laravel-elixir": "^4.0.0",