Skip to content

Commit

Permalink
Merge 54e4c4c into fdad057
Browse files Browse the repository at this point in the history
  • Loading branch information
vinitkumar committed Jan 26, 2022
2 parents fdad057 + 54e4c4c commit cd0e5a1
Show file tree
Hide file tree
Showing 7 changed files with 36,306 additions and 7,158 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [6.x]
node-version: ['16']

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm install -g gulp@3.9.1
- run: npm install -g gulp@4.0.2
- run: |
gulp tests:unit
gulp unitTest
gulp lint
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,3 @@ node_modules
screenshots
.idea
.better_test.db
.nvmrc
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
16
145 changes: 69 additions & 76 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
// #####################################################################################################################
// #IMPORTS#
var gulp = require('gulp');
var gutil = require('gulp-util');
var plumber = require('gulp-plumber');
var fs = require('fs');
var autoprefixer = require('autoprefixer');
var postcss = require('gulp-postcss');
var gulpif = require('gulp-if');
var iconfont = require('gulp-iconfont');
var iconfontCss = require('gulp-iconfont-css');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var minifyCss = require('gulp-clean-css');
var eslint = require('gulp-eslint');
var webpack = require('webpack');
var KarmaServer = require('karma').Server;
var integrationTests = require('djangocms-casper-helpers/gulp');

var argv = require('minimist')(process.argv.slice(2)); // eslint-disable-line
const gulp = require('gulp');
const gutil = require('gulp-util');
const plumber = require('gulp-plumber');
const fs = require('fs');
const autoprefixer = require('autoprefixer');
const postcss = require('gulp-postcss');
const browserSync = require('browser-sync').create();
const gulpif = require('gulp-if');
const iconfont = require('gulp-iconfont');
const iconfontCss = require('gulp-iconfont-css');
// const sass = require('gulp-sass');
const sass = require('gulp-sass')(require('sass'));
const sourcemaps = require('gulp-sourcemaps');
const minifyCss = require('gulp-clean-css');
const eslint = require('gulp-eslint');
const webpack = require('webpack');
const KarmaServer = require('karma').Server;
const integrationTests = require('djangocms-casper-helpers/gulp');
const GulpPostCss = require('gulp-postcss');

const argv = require('minimist')(process.argv.slice(2)); // eslint-disable-line

// #####################################################################################################################
// #SETTINGS#
var options = {
const options = {
debug: argv.debug
};
var PROJECT_ROOT = __dirname + '/cms/static/cms';
var PROJECT_PATH = {
const PROJECT_ROOT = __dirname + '/cms/static/cms';
const PROJECT_PATH = {
js: PROJECT_ROOT + '/js',
sass: PROJECT_ROOT + '/sass',
css: PROJECT_ROOT + '/css',
icons: PROJECT_ROOT + '/fonts',
tests: __dirname + '/cms/tests/frontend'
};

var PROJECT_PATTERNS = {
const PROJECT_PATTERNS = {
js: [
PROJECT_PATH.js + '/modules/*.js',
PROJECT_PATH.js + '/widgets/*.js',
PROJECT_PATH.js + '/*.js',
PROJECT_PATH.js + '/gulpfile.js',
PROJECT_PATH.tests + '/**/*.js',
'!' + PROJECT_PATH.tests + '/unit/helpers/**/*.js',
'!' + PROJECT_PATH.tests + '/coverage/**/*.js',
Expand All @@ -49,7 +51,7 @@ var PROJECT_PATTERNS = {
icons: [PROJECT_PATH.icons + '/src/*.svg']
};

var INTEGRATION_TESTS = [
const INTEGRATION_TESTS = [
[
'loginAdmin',
'toolbar',
Expand Down Expand Up @@ -105,12 +107,11 @@ var INTEGRATION_TESTS = [
]
];

var CMS_VERSION = fs.readFileSync('cms/__init__.py', { encoding: 'utf-8' }).match(/__version__ = '(.*?)'/)[1];
const CMS_VERSION = fs.readFileSync('cms/__init__.py', { encoding: 'utf-8' }).match(/__version__ = '(.*?)'/)[1];

// #####################################################################################################################
// #TASKS#
gulp.task('sass', function() {
gulp
const css = () => {
return (
gulp
.src(PROJECT_PATTERNS.sass)
.pipe(gulpif(options.debug, sourcemaps.init()))
.pipe(sass())
Expand All @@ -130,10 +131,12 @@ gulp.task('sass', function() {
})
)
.pipe(gulpif(options.debug, sourcemaps.write()))
.pipe(gulp.dest(PROJECT_PATH.css + '/' + CMS_VERSION + '/'));
});
.pipe(gulp.dest(PROJECT_PATH.css + '/' + CMS_VERSION + '/'))
);
};

gulp.task('icons', function() {
const icons = () => {
return (
gulp
.src(PROJECT_PATTERNS.icons)
.pipe(
Expand All @@ -154,47 +157,32 @@ gulp.task('icons', function() {
.on('glyphs', function(glyphs, opts) {
gutil.log.bind(glyphs, opts);
})
.pipe(gulp.dest(PROJECT_PATH.icons + '/' + CMS_VERSION + '/'));
});
.pipe(gulp.dest(PROJECT_PATH.icons + '/' + CMS_VERSION + '/'))
);
};

gulp.task('lint', ['lint:javascript']);
gulp.task('lint:javascript', function() {
// DOCS: http://eslint.org
return gulp
const lint = () => {
return (
gulp
.src(PROJECT_PATTERNS.js)
.pipe(gulpif(!process.env.CI, plumber()))
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError())
.pipe(gulpif(!process.env.CI, plumber.stop()));
});

gulp.task('tests', ['tests:unit', 'tests:integration']);
.pipe(gulpif(!process.env.CI, plumber.stop()))
);
};

// gulp tests:unit --tests=cms.base,cms.modal
gulp.task('tests:unit', function(done) {
var server = new KarmaServer(
{
const unitTest = (done) => {
return (
new KarmaServer({
configFile: PROJECT_PATH.tests + '/karma.conf.js',
singleRun: true
},
done
}, done).start()
);
};

server.start();
});

gulp.task('tests:unit:watch', function() {
var server = new KarmaServer({
configFile: PROJECT_PATH.tests + '/karma.conf.js'
});

server.start();
});

// gulp tests:integration [--clean] [--screenshots] [--tests=loginAdmin,toolbar]
gulp.task(
'tests:integration',
const testsIntegration = (done) => {
integrationTests({
tests: INTEGRATION_TESTS,
pathToTests: PROJECT_PATH.tests,
Expand All @@ -203,18 +191,19 @@ gulp.task(
serverCommand: 'testserver.py',
logger: gutil.log.bind(gutil),
waitForMigrations: 5 // seconds
})
);
});
done();
}

var webpackBundle = function(opts) {
var webpackOptions = opts || {};
const webpackBundle = function(opts) {
const webpackOptions = opts || {};

webpackOptions.PROJECT_PATH = PROJECT_PATH;
webpackOptions.debug = options.debug;
webpackOptions.CMS_VERSION = CMS_VERSION;

return function(done) {
var config = require('./webpack.config')(webpackOptions);
const config = require('./webpack.config')(webpackOptions);

webpack(config, function(err, stats) {
if (err) {
Expand All @@ -228,13 +217,17 @@ var webpackBundle = function(opts) {
};
};

gulp.task('bundle:watch', webpackBundle({ watch: true }));
gulp.task('bundle', webpackBundle());

gulp.task('watch', function() {
gulp.start('bundle:watch');
gulp.watch(PROJECT_PATTERNS.sass, ['sass']);
gulp.watch(PROJECT_PATTERNS.js, ['lint']);
});
const watchFiles = () => {
browserSync.init();
gulp.watch(PROJECT_PATTERNS.sass, css);
gulp.watch(PROJECT_PATTERNS.js, lint);
};

gulp.task('default', ['sass', 'lint', 'watch']);
gulp.task("sass", css);
gulp.task("icons", icons);
gulp.task("lint", lint);
gulp.task('watch', gulp.parallel(watchFiles));
gulp.task('bundle', webpackBundle());
gulp.task('unitTest', unitTest);
gulp.task('testsIntegration',testsIntegration);
gulp.task('tests', gulp.series(unitTest, testsIntegration));

0 comments on commit cd0e5a1

Please sign in to comment.