Skip to content

Commit

Permalink
[TR-3] - adding travis CI, refactoring gulp
Browse files Browse the repository at this point in the history
  • Loading branch information
Michał Sajnóg committed Nov 1, 2015
1 parent 00628d2 commit 6d21d32
Show file tree
Hide file tree
Showing 15 changed files with 173 additions and 97 deletions.
17 changes: 17 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.scss, *.css]
indent_size = 2
10 changes: 10 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Enforce Unix newlines
*.css text eol=lf
*.scss text eol=lf
*.html text eol=lf
*.js text eol=lf
*.md text eol=lf
*.svg text eol=lf
*.yml text eol=lf
# Don't diff or textually merge source maps
*.map binary
32 changes: 29 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
bower_components/
node_modules/
.DS_Store
# Numerous always-ignore extensions
*.diff
*.err
*.log
*.orig
*.rej
*.swo
*.swp
*.vi
*.zip
*~

# OS or Editor folders
._*
.cache
.DS_Store
.idea
.project
.settings
.tmproj
*.esproj
*.sublime-project
*.sublime-workspace
nbproject
Thumbs.db

# Folders to ignore
bower_components
node_modules
16 changes: 16 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
language: node_js
sudo: false
node_js:
- '0.12'

env:
global:

install:
- npm install -g gulp
- npm install -g karma
- npm install

cache:
directories:
- "$HOME/.nvm"
2 changes: 1 addition & 1 deletion dist/aos.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/aos.js.map

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/aos.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions gulp/bundle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
var gulp = require('gulp');
var watchify = require('watchify');
var browserify = require('browserify');

var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var gutil = require('gulp-util');
var sourcemaps = require('gulp-sourcemaps');

var browserSync = require('browser-sync');
var reload = browserSync.reload;

var browserifyOptions = {
entries: ['./src/js/aos.js'],
debug: true
};

var bundle = watchify(browserify(browserifyOptions))
.on('update', makeBundle)
.on('log', gutil.log);

function makeBundle() {
return bundle.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('aos.js'))
.pipe(buffer())
.pipe(sourcemaps.init({
loadMaps: true
}))
.pipe(uglify({
preserveComments: 'some'
}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./dist'))
.pipe(reload({
stream: true
}));
}

module.exports = makeBundle;
25 changes: 25 additions & 0 deletions gulp/sass.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
var gulp = require('gulp');

var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var minifyCss = require('gulp-minify-css');

var browserSync = require('browser-sync');
var reload = browserSync.reload;

module.exports = function() {
gulp.src('src/sass/*.scss')
.pipe(concat('aos.scss'))
.pipe(sass({
errLogToConsole: true
}))
.pipe(autoprefixer({
browsers: ['> 1%']
}))
.pipe(minifyCss())
.pipe(gulp.dest('dist'))
.pipe(reload({
stream: true
}));
}
12 changes: 12 additions & 0 deletions gulp/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
var gulp = require('gulp');
var karma = require('karma').Server;

var isTravis = process.env.TRAVIS || false;
var pathToKarmaConf = __dirname.replace('/gulp', '');

module.exports = function(done) {
new karma({
configFile: pathToKarmaConf + '/karma.conf.js',
singleRun: isTravis
}, done).start();
};
97 changes: 11 additions & 86 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,86 +1,21 @@
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var minifyCss = require('gulp-minify-css');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var watchify = require('watchify');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var gutil = require('gulp-util');
var sourcemaps = require('gulp-sourcemaps');
var assign = require('lodash.assign');
var Server = require('karma').Server;

// Browserify & watchify

var browserifyOptions = assign({}, watchify.args, {
entries: ['./src/js/aos.js'],
debug: true
});
var bundle = watchify(browserify(browserifyOptions));

bundle.on('update', makeBundle);
bundle.on('log', gutil.log);

function makeBundle() {
return bundle.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('aos.js'))
.pipe(buffer())
.pipe(sourcemaps.init({
loadMaps: true
}))
.pipe(uglify({
preserveComments: 'some'
}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./dist'))
.pipe(reload({
stream: true
}));
}
var taskBundle = require('./gulp/bundle');
var taskSass = require('./gulp/sass');
var taskTest = require('./gulp/test');

gulp.task('bundle', makeBundle);
// Browserify & watchify
gulp.task('bundle', taskBundle);

// Sass

gulp.task('sass', function() {
gulp.src('src/sass/*.scss')
.pipe(concat('aos.scss'))
.pipe(sass({
errLogToConsole: true
}))
.pipe(autoprefixer({
browsers: ['> 1%']
}))
.pipe(minifyCss())
.pipe(gulp.dest('dist'))
.pipe(reload({
stream: true
}));
});
gulp.task('sass', taskSass);

// Tests
gulp.task('test', taskTest);

gulp.task('test', function(done) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, done).start();
});

gulp.task('tdd', function(done) {
new Server({
configFile: __dirname + '/karma.conf.js'
}, done).start();
});

// Static server

gulp.task('browser-sync', function() {
browserSync({
server: {
Expand All @@ -89,25 +24,15 @@ gulp.task('browser-sync', function() {
});
});

// Reload all browsers

gulp.task('bs-reload', function() {
browserSync.reload();
});

// Developement task

gulp.task('watch', ['browser-sync', 'bundle', 'tdd'], function() {
gulp.task('watch', ['browser-sync', 'bundle', 'test'], function() {
gulp.watch('./src/sass/**/*.scss', ['sass']);
gulp.watch('*.html', ['bs-reload']);
});

// Task for `gulp` command

// Default task
gulp.task('default', ['watch']);

// Build js/css and run tests once

// Build js/css and run tests
gulp.task('build', ['bundle', 'sass', 'test'], function() {
process.exit();
});
});
2 changes: 1 addition & 1 deletion karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@ module.exports = function(config) {

// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
singleRun: true
})
}
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "AOS",
"version": "0.1.0",
"version": "1.0.0",
"description": "Animate on scroll library",
"author": "sanographix",
"author": "Michał Sajnóg <[email protected]>",
"license": "MIT",
"devDependencies": {
"browser-sync": "~2.0.1",
Expand Down Expand Up @@ -34,5 +34,8 @@
"lodash.debounce": "^3.1.1",
"lodash.foreach": "^3.0.3",
"lodash.throttle": "^3.0.4"
},
"scripts": {
"test": "gulp test"
}
}
2 changes: 1 addition & 1 deletion src/js/aos.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,4 @@ var elements = require('./helpers/elements');

window.AOS = AOS;

})(window, document);
})(window, document);
4 changes: 2 additions & 2 deletions test/fixtures/aos.fixture.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<div class="aos-item" aos="fade-left"></div>
<div class="aos-item" aos="fade-right"></div>
<div class="aos-item" aos="zoom-in"></div>
<div class="aos-item" aos=f"lip-up"></div>
<div class="aos-item" aos="flip-up"></div>
<div class="aos-item" aos="flip-up"></div>
<div class="aos-item" aos="flip-up"></div>
<div class="aos-item" aos="flip-up"></div>
Expand All @@ -27,4 +27,4 @@
<div class="aos-item" aos="flip-up"></div>
<div class="aos-item" aos="flip-up"></div>
</body>
</html>
</html>

0 comments on commit 6d21d32

Please sign in to comment.