Files
docker-webforms/gulpfile.js
Tommy Parnell 7a3d92c957 init
2016-10-20 10:08:13 -04:00

66 lines
2.3 KiB
JavaScript

var gulp = require('gulp');
var request = require('request');
var fs = require('fs');
var nuget = require('gulp-nuget');
var request = require('request');
var child_process = require('child_process');
var msbuild = require('gulp-msbuild');
var assemblyInfo = require('gulp-dotnet-assembly-info');
var argv = require('yargs')
.default('version', '1.0.0').argv;
var del = require('del');
gulp.task('retrieve', ['restore:nuget', 'restore:dockerImage']);
gulp.task('build', ['build:csharp', 'build:dockerImage'])
gulp.task('clean', ()=>{
return del(['nuget.exe', 'packages', 'WebForms1/output'])
});
gulp.task('download:nuget', ['clean'] ,(cb)=>{
return request('http://nuget.org/nuget.exe')
.pipe(fs.createWriteStream('nuget.exe'));
});
gulp.task('restore:nuget', ['clean','download:nuget'], ()=>{
return gulp.src('WebForms1.sln')
.pipe(nuget.restore({ nuget: "./nuget.exe" }));
});
gulp.task('restore:dockerImage', ()=>{
//so help my soul for making this sync
child_process.execSync('docker pull microsoft/aspnet', {stdio: 'inherit'})
});
gulp.task('build:patchAssemblyInfo', function() {
gulp.src(['**/AssemblyInfo.cs', '!packages/**'])
.pipe(assemblyInfo({
title: 'Planet Express Website',
description: 'Shipping and tracking website.',
configuration: 'Release',
company: 'Planet Express',
product: 'Planet Express Website',
copyright: 'Copyright 3002 © Planet Express',
trademark: 'Planet Express',
culture: 'en-us',
version: function(value) { return argv.version },
fileVersion: function(value) { return argv.version; },
}))
.pipe(gulp.dest('.'));
});
gulp.task('build:csharp', ['retrieve', 'build:patchAssemblyInfo'], ()=>{
return gulp.src("./WebForms1/WebForms1.csproj")
.pipe(msbuild({
targets: ['Clean', 'Build'],
properties: { Configuration: 'Release', DeployOnBuild: 'true', PublishProfile: '.\\p.pubxml' },
toolsVersion: 14
})
);
});
gulp.task('build:dockerImage', ['build:csharp', 'restore:dockerImage'], ()=>{
//so help my soul for making this sync
child_process.execSync(`docker build -t tparnell/mywebforms:${argv.version} .`, {stdio: 'inherit', cwd: "./WebForms1/output"})
});