Browse Source

Rewrite admin tasks as export

pull/1785/head
jlukic 10 years ago
parent
commit
2f8a1643ef
9 changed files with 139 additions and 64 deletions
  1. 15
      tasks/admin/create-components.js
  2. 2
      tasks/admin/release-all.js
  3. 23
      tasks/admin/release.js
  4. 11
      tasks/admin/update-components.js
  5. 37
      tasks/collections/admin.js
  6. 90
      tasks/collections/internal.js
  7. 10
      tasks/config/admin/oauth.js
  8. 8
      tasks/config/admin/release.js
  9. 7
      tasks/config/project/release.js

tasks/admin/create-repos.js → tasks/admin/create-components.js

@ -1,5 +1,5 @@
/*******************************
Create Repos
Create Component Repos
*******************************/
/*
@ -28,15 +28,18 @@ var
flatten = require('gulp-flatten'),
git = require('gulp-git'),
plumber = require('gulp-plumber'),
jsonEditor = require('gulp-json-editor'),
rename = require('gulp-rename'),
replace = require('gulp-replace'),
tap = require('gulp-tap'),
// config
config = require('./config/user'),
config = require('../config/user'),
github = require('../config/admin/github'),
release = require('../config/admin/release'),
// shorthand
version = release.version,
output = config.paths.output
;
@ -158,7 +161,7 @@ module.exports = function(callback) {
return gulp.src(release.templates.bower)
.pipe(plumber())
.pipe(flatten())
.pipe(jeditor(function(bower) {
.pipe(jsonEditor(function(bower) {
bower.name = packageName;
bower.description = capitalizedComponent + ' - Semantic UI';
if(isJavascript) {
@ -193,7 +196,7 @@ module.exports = function(callback) {
return gulp.src(release.templates.package)
.pipe(plumber())
.pipe(flatten())
.pipe(jeditor(function(package) {
.pipe(jsonEditor(function(package) {
if(isJavascript) {
package.dependencies = {
jquery: 'x.x.x'
@ -221,7 +224,7 @@ module.exports = function(callback) {
return gulp.src(release.templates.composer)
.pipe(plumber())
.pipe(flatten())
.pipe(jeditor(function(composer) {
.pipe(jsonEditor(function(composer) {
if(isJavascript) {
composer.dependencies = {
jquery: 'x.x.x'
@ -309,4 +312,4 @@ module.exports = function(callback) {
}
runSequence(tasks, callback);
});
};

2
tasks/admin/release-all.js

@ -20,7 +20,7 @@ module.exports = function() {
runSequence(
'build', // build Semantic
'create components', // create each component repo
'update component repos' // update component repos on github
'update components' // update component repos on github
);
};

23
tasks/admin/release.js

@ -1,10 +1,21 @@
/* Release */
gulp.task('release', false, function() {
/*******************************
Release
*******************************/
/*
This task update only SUI repos that use the full release (all components)
*/
var
runSequence = require('run-sequence')
;
module.exports = function() {
// gulp build
runSequence(
'build',
'create files'
'build', // build semantic
'create static repo' // create standalone css repo
);
});
};

tasks/admin/update-repos.js → tasks/admin/update-components.js

@ -27,9 +27,13 @@ var
// admin files
github = require('../config/admin/github.js'),
oAuth = require('../config/admin/oauth.js'),
release = require('../config/admin/release'),
// oAuth configuration for GitHub
oAuth = fs.existsSync('../config/admin/oauth')
? require('../config/admin/oauth')
: false,
package = requireDotFile('package.json'),
version = package.version
;
@ -44,6 +48,11 @@ module.exports = function() {
;
console.log('Handling git');
if(!oAuth) {
console.error('Must add oauth token for GitHub in tasks/admin/oauth.js');
return;
}
// Do Git commands synchronously per component, to avoid issues
stepRepo = function() {

37
tasks/collections/admin.js

@ -0,0 +1,37 @@
/*******************************
Admin Task Collection
*******************************/
/*
This are tasks to be run by project maintainers
- Creating Component Repos
- Syncing with GitHub via APIs
- Modifying package files
*/
/*******************************
Tasks
*******************************/
module.exports = function(gulp) {
var
// single component releases
createComponents = require('../admin/create-components'),
updateComponents = require('../admin/update-components'),
// one time register with PM
registerRepos = require('../admin/register-repos'),
// meta tasks
releaseAll = require('../admin/release-all'),
release = require('../admin/release')
;
gulp.task('create components', 'Creates local repos for each component', createComponents);
gulp.task('update components', 'Commits component updates to GitHub', updateComponents);
gulp.task('register repos', 'Registers packages with Bower and NPM', registerRepos);
gulp.task('release all', 'Publishes all releases (components, package)', releaseAll);
gulp.task('release', 'Publishes only packaged releases', release);
};

90
tasks/collections/internal.js

@ -102,49 +102,53 @@ module.exports = function(gulp) {
RTL
---------------*/
gulp.task('package uncompressed rtl css', function () {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css')
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedRTLCSS))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package compressed rtl css', function () {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css')
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedMinifiedRTLCSS))
.pipe(minifyCSS(settings.minify))
.pipe(header(banner, settings.header))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package uncompressed docs css', function() {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css')
.pipe(plumber())
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedCSS))
.pipe(gulpif(config.hasPermission, chmod(config.permission)))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package compressed docs css', function() {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css')
.pipe(plumber())
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedMinifiedCSS))
.pipe(minifyCSS(settings.minify))
.pipe(header(banner, settings.header))
.pipe(gulpif(config.hasPermission, chmod(config.permission)))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
if(config.rtl) {
gulp.task('package uncompressed rtl css', function () {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css')
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedRTLCSS))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package compressed rtl css', function () {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css')
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedMinifiedRTLCSS))
.pipe(minifyCSS(settings.minify))
.pipe(header(banner, settings.header))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package uncompressed docs css', function() {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css')
.pipe(plumber())
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedCSS))
.pipe(gulpif(config.hasPermission, chmod(config.permission)))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
gulp.task('package compressed docs css', function() {
return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css')
.pipe(plumber())
.pipe(replace(assets.uncompressed, assets.packaged))
.pipe(concatCSS(filenames.concatenatedMinifiedCSS))
.pipe(minifyCSS(settings.minify))
.pipe(header(banner, settings.header))
.pipe(gulpif(config.hasPermission, chmod(config.permission)))
.pipe(gulp.dest(output.packaged))
.pipe(print(log.created))
;
});
}
/*--------------
Docs

10
tasks/config/admin/oauth.js

@ -0,0 +1,10 @@
/*
Used to import GitHub Auth Token
To Automate GitHub Updates
*/
module.exports = {
token : 'AN-OAUTH2-TOKEN',
name : 'Your Name',
email : 'user@email.com'
};

8
tasks/config/admin/release.js

@ -27,6 +27,14 @@ module.exports = {
org : 'Semantic-Org',
repo : 'Semantic-UI',
// files created for package managers
files: {
composer : 'composer.json',
config : 'semantic.json',
npm : 'package.json',
meteor : 'package.js'
},
// root name for repos
repoRoot : 'UI-',
packageRoot : 'semantic-ui-',

7
tasks/config/project/release.js

@ -56,13 +56,6 @@ module.exports = {
+ ' *' + '\n'
+ ' */' + '\n',
files: {
composer : 'composer.json',
config : 'semantic.json',
npm : 'package.json',
meteor : 'package.js'
},
version : package.version
};
Loading…
Cancel
Save