From 3aa90d950d9ef74cee44dd939705a3f1b8a11c55 Mon Sep 17 00:00:00 2001 From: Steve Schmitt Date: Tue, 20 Apr 2021 12:54:20 -0700 Subject: [PATCH] Update AspNetCore-v3 projects to 3.1.4; change nuget package deploy to the same scripts used by v5; read nuget key from file; Release 3.1.4 --- .../Breeze.AspNetCore.NetCore.csproj | 6 +- AspNetCore-v3/Breeze.Core/Breeze.Core.csproj | 6 +- .../Breeze.Persistence.EFCore.csproj | 2 +- .../Breeze.Persistence.NH.csproj | 6 +- .../Breeze.Persistence.csproj | 6 +- AspNetCore-v3/package.json | 17 ++++ AspNetCore-v3/tools/build-utils.js | 40 ++++++++++ AspNetCore-v3/tools/deploy.js | 80 +++++++++++++++++++ .../Breeze.Persistence.NH.csproj | 2 +- AspNetCore-v5/tools/build-utils.js | 9 ++- AspNetCore-v5/tools/deploy.js | 4 +- 11 files changed, 163 insertions(+), 15 deletions(-) create mode 100644 AspNetCore-v3/package.json create mode 100644 AspNetCore-v3/tools/build-utils.js create mode 100644 AspNetCore-v3/tools/deploy.js diff --git a/AspNetCore-v3/Breeze.AspNetCore.NetCore/Breeze.AspNetCore.NetCore.csproj b/AspNetCore-v3/Breeze.AspNetCore.NetCore/Breeze.AspNetCore.NetCore.csproj index 85c19b8b..08e4bd3e 100644 --- a/AspNetCore-v3/Breeze.AspNetCore.NetCore/Breeze.AspNetCore.NetCore.csproj +++ b/AspNetCore-v3/Breeze.AspNetCore.NetCore/Breeze.AspNetCore.NetCore.csproj @@ -1,13 +1,14 @@ - + netcoreapp3.1 Library + true true Breeze.snk - 3.1.0 + 3.1.4 Jay Traband IdeaBlade Breeze Server - ASP.NET Core Library @@ -22,6 +23,7 @@ Note: Version 5.x of this package is for .NET 5, whereas Version 3.x in for .NE Version 5.x of this package is for .NET Core 5, whereas Version 3.x is for .NET Core 3 and Version 1.x is for .NET Core 2. Please review the Breeze release notes at http://breeze.github.io/doc-net/release-notes.html true + false diff --git a/AspNetCore-v3/Breeze.Core/Breeze.Core.csproj b/AspNetCore-v3/Breeze.Core/Breeze.Core.csproj index 310816ae..fd315610 100644 --- a/AspNetCore-v3/Breeze.Core/Breeze.Core.csproj +++ b/AspNetCore-v3/Breeze.Core/Breeze.Core.csproj @@ -4,9 +4,9 @@ netstandard2.1 true Breeze.snk - 3.1.0 - 3.1.0 - 3.1.0 + 3.1.4 + 3.1.4 + 3.1.4 Jay Traband IdeaBlade Breeze Server - Core Library diff --git a/AspNetCore-v3/Breeze.Persistence.EFCore/Breeze.Persistence.EFCore.csproj b/AspNetCore-v3/Breeze.Persistence.EFCore/Breeze.Persistence.EFCore.csproj index 8800a4ee..28a25926 100644 --- a/AspNetCore-v3/Breeze.Persistence.EFCore/Breeze.Persistence.EFCore.csproj +++ b/AspNetCore-v3/Breeze.Persistence.EFCore/Breeze.Persistence.EFCore.csproj @@ -4,7 +4,7 @@ netstandard2.1 true Breeze.snk - 3.1.0 + 3.1.4 true Jay Traband IdeaBlade diff --git a/AspNetCore-v3/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj b/AspNetCore-v3/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj index 5130b7e7..7097b810 100644 --- a/AspNetCore-v3/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj +++ b/AspNetCore-v3/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj @@ -2,9 +2,9 @@ netstandard2.1 - 3.1.0 - 3.1.0.0 - 3.1.0.0 + 3.1.4 + 3.1.4.0 + 3.1.4.0 true Jay Traband, Steve Schmitt IdeaBlade diff --git a/AspNetCore-v3/Breeze.Persistence/Breeze.Persistence.csproj b/AspNetCore-v3/Breeze.Persistence/Breeze.Persistence.csproj index fbd8d69b..10ed6267 100644 --- a/AspNetCore-v3/Breeze.Persistence/Breeze.Persistence.csproj +++ b/AspNetCore-v3/Breeze.Persistence/Breeze.Persistence.csproj @@ -4,9 +4,9 @@ netstandard2.1 true Breeze.snk - 3.1.0 - 3.1.0 - 3.1.0 + 3.1.4 + 3.1.4 + 3.1.4 true Jay Traband IdeaBlade diff --git a/AspNetCore-v3/package.json b/AspNetCore-v3/package.json new file mode 100644 index 00000000..94b38e70 --- /dev/null +++ b/AspNetCore-v3/package.json @@ -0,0 +1,17 @@ +{ + "name": "aspnetcore-v3", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "deploy-local": "node tools/deploy local", + "deploy-remote": "node tools/deploy remote" + }, + "author": "Jay Traband", + "license": "ISC", + "devDependencies": { + "del": "^6.0.0", + "fs-extra": "^9.1.0" + } +} diff --git a/AspNetCore-v3/tools/build-utils.js b/AspNetCore-v3/tools/build-utils.js new file mode 100644 index 00000000..1efd4682 --- /dev/null +++ b/AspNetCore-v3/tools/build-utils.js @@ -0,0 +1,40 @@ +var fs = require("fs-extra"); +var exec = require('child_process').exec; +var del = require('del'); + + +// Get single command line argument, and show usage method if its incorrect */ +function getArg() { + var args = process.argv.slice(2); + if (args.length !== 1 || args[0].indexOf('.js') >= 0) { + var msg = "Usage: " + process.argv[0] + " " + process.argv[1] + " [filenameRoot]" + throw new Error(msg); + } + return args[0]; +} + +// exec cmd, then call fn if cmd was successful +// options.cwd = current working dir +// cb is function(err, stdout, stderr); +function execCmd(cmd, options, callback) { + options = options || {}; + exec(cmd, function (error, stdout, stderr) { + stdout && console.log('stdout: ' + stdout); + stderr && console.log('stderr: ' + stderr); + error && console.log('error: ' + error); + if (callback) callback(error, stdout, stderr); + }); +} + +/** Return the first line of text from the file */ +function readFirstLine(filename) { + const data = fs.readFileSync(filename, {encoding:'utf8', flag:'r'}); + const line = data.toString().split(/[\r\n]/)[0]; + return line; +} + +module.exports = { + execCmd: execCmd, + getArg: getArg, + readFirstLine: readFirstLine +} diff --git a/AspNetCore-v3/tools/deploy.js b/AspNetCore-v3/tools/deploy.js new file mode 100644 index 00000000..5fa26ef0 --- /dev/null +++ b/AspNetCore-v3/tools/deploy.js @@ -0,0 +1,80 @@ + /** + * Deploys nupkg to local cache dir for testing + */ +var fs = require("fs-extra"); +var del = require('del'); +const bu = require('.\\build-utils'); + +const localNugetCacheDir = process.env.LOCALAPPDATA + '\\NuGet\\Test'; +const version = '3.1.4'; +const debugOrRelease = 'Release' + +var baseNames = [ + 'Breeze.AspNetCore.NetCore', + 'Breeze.Core', + 'Breeze.Persistence', + 'Breeze.Persistence.EFCore', + 'Breeze.Persistence.NH', +]; + +const arg = bu.getArg(); +argl = arg.toLowerCase(); +if (argl == 'local') { + deployLocal(); +} else if (argl == 'remote') { + deployRemote(); +} else { + console.log(`You must pass in either 'local' or 'remote'. You passed: ${argl}`); +} + +// should ONLY be called manually after testing locally installed nugets from nugetPack step. +// deliberately does NOT have a dependency on nugetPack + +function deployLocal() { + deleteLocalAppCache(baseNames); + const nupkgs = getNupkgs(baseNames); + nupkgs.forEach(nupkg => { + // call will look something like the line below + // --> nuget add .\Breeze.Core\bin\Debug\Breeze.Core.5.0.2.nupkg -Source C:/Users/Jay/AppData/Local/NuGet/Test + cmd = `nuget add ${nupkg} -Source ${localNugetCacheDir}`; + console.log(cmd); + bu.execCmd(cmd); + }); +} + +function deployRemote() { + // Before running, put the nuget key in a file 2 levels above (outside the repo) + const key = bu.readFirstLine('../../~nugetkey.txt'); + const nupkgs = getNupkgs(baseNames); + nupkgs.forEach(nupkg => { + var cmd = `nuget push ${nupkg} ${key} -Source https://www.nuget.org`; + console.log(cmd); + bu.execCmd(cmd); + }); +} + +function getNupkgs(baseNames) { + const nupkgs = baseNames.map(baseName => { + // check if nupkg exists. + var fn = `.\\${baseName}\\bin\\${debugOrRelease}\\${baseName}.${version}.nupkg`; + if (!fs.existsSync(fn)) { + console.log('Unable to locate: ' + fn); + process.exit(1); + } + return fn; + }); + return nupkgs; +} + +function deleteLocalAppCache(baseNames) { + baseNames.forEach(baseName => { + const cacheDir = localNugetCacheDir + '\\' + baseName; + console.log(cacheDir); + if (fs.existsSync(cacheDir)) { + console.log('Deleting: ' + cacheDir) + del(cacheDir, { force: true} ); + } + }) +}; + + diff --git a/AspNetCore-v5/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj b/AspNetCore-v5/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj index 5d946ac1..95525ff2 100644 --- a/AspNetCore-v5/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj +++ b/AspNetCore-v5/Breeze.Persistence.NH/Breeze.Persistence.NH.csproj @@ -11,7 +11,7 @@ Note: Version 5.x of this package is for .NET 5, whereas Version 3.x in for .NET Core 3 and Version 1.x is for .NET Core 2. - Copyright � IdeaBlade 2012-2021 + Copyright © IdeaBlade 2012-2021 http://breeze.github.io Jay Traband, Steve Schmitt IdeaBlade diff --git a/AspNetCore-v5/tools/build-utils.js b/AspNetCore-v5/tools/build-utils.js index 1be8c3d5..1efd4682 100644 --- a/AspNetCore-v5/tools/build-utils.js +++ b/AspNetCore-v5/tools/build-utils.js @@ -26,8 +26,15 @@ function execCmd(cmd, options, callback) { }); } +/** Return the first line of text from the file */ +function readFirstLine(filename) { + const data = fs.readFileSync(filename, {encoding:'utf8', flag:'r'}); + const line = data.toString().split(/[\r\n]/)[0]; + return line; +} module.exports = { execCmd: execCmd, - getArg: getArg + getArg: getArg, + readFirstLine: readFirstLine } diff --git a/AspNetCore-v5/tools/deploy.js b/AspNetCore-v5/tools/deploy.js index ae0a49ab..f361296f 100644 --- a/AspNetCore-v5/tools/deploy.js +++ b/AspNetCore-v5/tools/deploy.js @@ -43,9 +43,11 @@ function deployLocal() { } function deployRemote() { + // Before running, put the nuget key in a file 2 levels above (outside the repo) + const key = bu.readFirstLine('../../~nugetkey.txt'); const nupkgs = getNupkgs(baseNames); nupkgs.forEach(nupkg => { - var cmd = `nuget push ${nupkg} {{ nuget key goes here }} -Source https://www.nuget.org`; + var cmd = `nuget push ${nupkg} ${key} -Source https://www.nuget.org`; console.log(cmd); bu.execCmd(cmd); });