| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- var gulp = require('gulp');
- var filter = require('gulp-filter');
- var cleancss = require('gulp-clean-css');
- var rename = require('gulp-rename');
- var uglify = require('gulp-uglify');
- var confirm = require('gulp-prompt').confirm;
- var rsync = require('gulp-rsync');
- var replace = require('gulp-replace');
- var octophant = require('octophant');
- var inquirer = require('inquirer');
- var exec = require('child_process').execSync;
- var plumber = require('gulp-plumber');
- var sourcemaps = require('gulp-sourcemaps');
- var rollup = require('rollup');
- var ROLLUP_CONFIG = require('../../rollup.config.js');
- var CONFIG = require('../config.js');
- var CURRENT_VERSION = require('../../package.json').version;
- var NEXT_VERSION;
- gulp.task('deploy', gulp.series('deploy:prompt', 'deploy:version', 'deploy:dist', 'deploy:plugins', 'deploy:settings', 'deploy:commit', 'deploy:templates'));
- gulp.task('deploy:prep', gulp.series('deploy:prompt', 'deploy:version', 'deploy:dist', 'deploy:plugins', 'deploy:settings'));
- gulp.task('deploy:dist', gulp.series('sass:foundation', 'javascript:foundation', 'deploy:dist:files', 'deploy:dist:bundles'));
- gulp.task('deploy:plugins', gulp.series('deploy:plugins:sources', 'deploy:plugins:sourcemaps'));
- gulp.task('deploy:prompt', function(cb) {
- inquirer.prompt([{
- type: 'input',
- name: 'version',
- message: 'What version are we moving to? (Current version is ' + CURRENT_VERSION + ')'
- }])
- .then(function(res) {
- NEXT_VERSION = res.version;
- cb();
- });
- });
- // Bumps the version number in any file that has one
- gulp.task('deploy:version', function() {
- return gulp.src(CONFIG.VERSIONED_FILES, { base: process.cwd() })
- .pipe(replace(CURRENT_VERSION, NEXT_VERSION))
- .pipe(gulp.dest('.'));
- });
- // Generates compiled CSS and JS files and sourcemaps and puts them in the dist/ folder
- gulp.task('deploy:dist:files', function() {
- var cssFilter = filter(['**/*.css'], { restore: true });
- var jsFilter = filter(['**/*.js'], { restore: true });
- var cssSourcemapFilter = filter(['**/*.css.map'], { restore: true });
- var jsSourcemapFilter = filter(['**/*.js.map'], { restore: true });
- var tsFilter = filter(['**/*.ts'], { restore: true });
- return gulp.src(CONFIG.DIST_FILES)
- .pipe(plumber())
- // --- Source maps ---
- // * Copy sourcemaps to the dist folder
- // This is done first to avoid collision with minified-sourcemaps.
- .pipe(cssSourcemapFilter)
- .pipe(gulp.dest('./dist/css'))
- .pipe(cssSourcemapFilter.restore)
- .pipe(jsSourcemapFilter)
- .pipe(gulp.dest('./dist/js'))
- .pipe(jsSourcemapFilter.restore)
- // --- Source files ---
- // * Copy source files to dist folder
- // * Create minified files
- // * Create minified-sourcemaps based on standard sourcemaps.
- // Sourcemaps are initialized before the ".min" renaming to be able retrieve
- // original sourcemaps from source names.
- .pipe(cssFilter)
- .pipe(gulp.dest('./dist/css'))
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(cleancss({ compatibility: 'ie9' }))
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('./dist/css'))
- .pipe(cssFilter.restore)
- .pipe(jsFilter)
- .pipe(gulp.dest('./dist/js'))
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('./dist/js'))
- .pipe(jsFilter.restore)
- // --- TypeScript files ---
- // * Copy typescript files to the dist folder
- .pipe(tsFilter)
- .pipe(gulp.dest('./dist/js'))
- .pipe(tsFilter.restore);
- });
- //
- // Generates JS bundles and puts them in the dist/ folder.
- //
- // In addition to the UMD bundle coming from the build task, the following
- // formats are generated: CJS, ESM, ES6.
- // See "rollup.config.js" for more information.
- //
- gulp.task('deploy:dist:bundles', gulp.series(
- // Create a subtask for each Rollup config
- ...ROLLUP_CONFIG.map((config) => function () {
- // Run rollup with the Rollup config
- return rollup.rollup(config)
- .then(bundle => bundle.write(config.output));
- })
- ));
- // Copies standalone JavaScript plugins to dist/ folder
- gulp.task('deploy:plugins:sources', function () {
- return gulp.src('_build/assets/js/plugins/*.js')
- .pipe(gulp.dest('dist/js/plugins'))
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('dist/js/plugins'));
- });
- // Copies standalone JavaScript plugins sourcemaps to dist/ folder
- gulp.task('deploy:plugins:sourcemaps', function () {
- return gulp.src('_build/assets/js/plugins/*.js.map')
- .pipe(gulp.dest('dist/js/plugins'));
- });
- // Generates a settings file
- gulp.task('deploy:settings', function(done) {
- var options = {
- title: 'Foundation for Sites Settings',
- output: './scss/settings/_settings.scss',
- groups: {
- 'grid': 'The Grid',
- 'off-canvas': 'Off-canvas',
- 'typography-base': 'Base Typography'
- },
- sort: [
- 'global',
- 'breakpoints',
- 'grid',
- 'typography-base',
- 'typography-helpers'
- ],
- imports: ['util/util'],
- _foundationShim: true
- }
- octophant('./scss', options, done);
- });
- // Writes a commit with the changes to the version numbers
- gulp.task('deploy:commit', function() {
- exec('git commit -am "Bump to version "' + NEXT_VERSION);
- exec('git tag v' + NEXT_VERSION);
- exec('git push origin develop --follow-tags');
- });
- // Uploads the documentation to the live server
- gulp.task('deploy:docs', gulp.series('build', function() {
- return gulp.src('./_build/**')
- .pipe(confirm('Make sure everything looks right before you deploy.'))
- .pipe(rsync({
- root: './_build',
- hostname: 'deployer@72.32.134.77',
- destination: '/home/deployer/sites/foundation-sites-6-docs'
- }));
- }));
- // Uploads the documentation to the live server in beta env
- gulp.task('deploy:beta', gulp.series('build', function() {
- return gulp.src('./_build/**')
- .pipe(confirm('Make sure everything looks right before you deploy.'))
- .pipe(rsync({
- root: './_build',
- hostname: 'deployer@72.32.134.77',
- destination: '/home/deployer/sites/scalingsexiness/foundation-sites-6-docs'
- }));
- }));
- // This part of the deploy process hasn't been tested! It should be done manually for now
- gulp.task('deploy:templates', function(done) {
- // exec('git clone https://github.com/zurb/foundation-sites-template');
- // exec('cp scss/settings/_settings.scss foundation-sites-template/scss/_settings.scss');
- // exec('cd foundation-sites-template');
- // exec('git commit -am "Update settings file to match Foundation "' + NEXT_VERSION);
- // exec('git push origin master');
- // exec('cd ..');
- // exec('rm -rf foundation-sites-template');
- //
- // exec('git clone https://github.com/zurb/foundation-zurb-template');
- // exec('cp scss/settings/_settings.scss foundation-zurb-template/src/assets/scss/_settings.scss');
- // exec('cd foundation-zurb-template');
- // exec('git commit -am "Update settings file to match Foundation "' + NEXT_VERSION);
- // exec('git push origin master');
- // exec('cd ..');
- // exec('rm -rf foundation-zurb-template');
- done();
- });
- // The Customizer runs this function to generate files it needs
- gulp.task('deploy:custom', gulp.series('sass:foundation', 'javascript:foundation', gulp.parallel(
- function () {
- return gulp.src('./_build/assets/css/foundation.css')
- .pipe(cleancss({ compatibility: 'ie9' }))
- .pipe(rename('foundation.min.css'))
- .pipe(gulp.dest('./_build/assets/css'));
- },
- function () {
- return gulp.src('_build/assets/js/foundation.js')
- .pipe(uglify())
- .pipe(rename('foundation.min.js'))
- .pipe(gulp.dest('./_build/assets/js'));
- }
- )));
|