Modern version of the legendary push.php. Windows users can ditch Cygwin - no PHP here, only Node.
$ npm install gulp-studio-push --save-dev
$ echo '.studio-credentials' >> .gitignore # Add .studio-credentials to .gitignore file
Ignore patterns can be added to .studio-ignore
file.
.DS_Store
dist/img/*.gif
!dist/img/allowed.gif
gulp.task('push', function () {
const studioPush = require('gulp-studio-push');
const studioSettings = {
studio: 'foo.studio.crasman.fi',
proxy: 'http://foo.intra:8080/',
concurrentUploads: 4 // Default 5, max 5
// Only needed if you don't want to use the default ignore file (.studio-ignore)
//ignoreFile: '.studio-ignore-2',
folders : [{
folderId: '5807aedb2b089f6b6f44cfaf',
localFolder: 'dist',
includeSubFolders: true,
createdFolderSettings: { // Cache settings for created folders
'dist/master': { // RegExp match
fileCacheMaxAge: 604800 // Week for master files
},
'dist/release-.*?': { // RegExp match
fileCacheMaxAge: 604800 // Week for release-0.1, release-0.2 etc.
},
'dist/.*?': { // RegExp match
fileCacheMaxAge: 1 // 1 second for everything else (dev branches)
}
},
createdFileHeaders: { // (version ^1.5.0)
// For master and release-* branch Service Workers (sw.js or service-worker.js)
'dist/(master|release-.*)/(sw.js|service-worker.js)': { // RegExp match
'Service-Worker-Allowed': '/', // Allow from root of domain
'Cache-Control': 'public, max-age=60, s-maxage=60' // Use very short max age for Service Workers in production
},
// development branch Service Workers
'dist/.*/(sw.js|service-worker.js)': { // RegExp match
'Service-Worker-Allowed': '/', // Allow from root of domain
'Cache-Control': 'private, must-revalidate, no-cache, no-store, max-age=0, s-maxage=0' // no cache for development branch Service Workers
}
}
}]
};
return gulp.src('dist').pipe(studioPush(studioSettings));
});
const gulp = require('gulp');
const studioPush = require('gulp-studio-push');
const studioSettings = {
studio: 'foo.studio.crasman.fi',
proxy: 'http://foo.intra:8080/',
folders: [{
folderId: '568a7a2aadd4532b0f4f4f5b',
localFolder: 'dist/js',
includeSubFolders: true // Create and upload child folders too
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'dist/css'
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'dist/img'
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'other/folder'
}]
};
// Upload all folders
gulp.task('push', function () {
return gulp.src('.').pipe(studioPush(studioSettings));
});
// Upload dist/img folder
gulp.task('push-images', function () {
return gulp.src('dist/img').pipe(studioPush(studioSettings));
});
// Upload all folders starting with 'dist' (dist/js, dist/css, dist/img)
gulp.task('push-dist', function () {
return gulp.src('dist').pipe(studioPush(studioSettings));
});
// Upload css and js
gulp.task('push-foo', function () {
return gulp.src(['dist/js', 'dist/css']).pipe(studioPush(studioSettings));
});