Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| deae50007e | |||
| 9ddf28f90a | |||
| 4321ae3dab | |||
| 1c7542c970 |
3
dist/npmci.build.docker.d.ts
vendored
3
dist/npmci.build.docker.d.ts
vendored
@@ -1,9 +1,10 @@
|
||||
export declare let build: () => any;
|
||||
export declare class Dockerfile {
|
||||
filePath: string;
|
||||
buildTag: string;
|
||||
repo: string;
|
||||
version: string;
|
||||
cleanTag: string;
|
||||
buildTag: string;
|
||||
content: string;
|
||||
baseImage: string;
|
||||
constructor(options: {
|
||||
|
||||
54
dist/npmci.build.docker.js
vendored
54
dist/npmci.build.docker.js
vendored
File diff suppressed because one or more lines are too long
5
dist/npmci.build.js
vendored
5
dist/npmci.build.js
vendored
@@ -1,11 +1,14 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
var plugins = require("./npmci.plugins");
|
||||
var buildDocker = require("./npmci.build.docker");
|
||||
exports.build = function (commandArg) {
|
||||
switch (commandArg) {
|
||||
case "docker":
|
||||
return buildDocker.build();
|
||||
default:
|
||||
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||
}
|
||||
};
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFJeEIsSUFBWSxXQUFXLFdBQU0sc0JBRTdCLENBQUMsQ0FGa0Q7QUFFeEMsYUFBSyxHQUFHLFVBQVMsVUFBVTtJQUNsQyxNQUFNLENBQUEsQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDO1FBQ2YsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0FBQ0wsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmJ1aWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XG5pbXBvcnQgKiBhcyBlbnYgZnJvbSBcIi4vbnBtY2kuZW52XCI7XG5pbXBvcnQgKiBhcyBidWlsZERvY2tlciBmcm9tIFwiLi9ucG1jaS5idWlsZC5kb2NrZXJcIlxuXG5leHBvcnQgbGV0IGJ1aWxkID0gZnVuY3Rpb24oY29tbWFuZEFyZyl7XG4gICAgc3dpdGNoKGNvbW1hbmRBcmcpe1xuICAgICAgICBjYXNlIFwiZG9ja2VyXCI6XG4gICAgICAgICAgICByZXR1cm4gYnVpbGREb2NrZXIuYnVpbGQoKTsgICBcbiAgICB9XG59XG5cblxuXG4iXX0=
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUczQyxJQUFZLFdBQVcsV0FBTSxzQkFFN0IsQ0FBQyxDQUZrRDtBQUV4QyxhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCAqIGFzIGJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgYnVpbGQgPSBmdW5jdGlvbihjb21tYW5kQXJnKXtcbiAgICBzd2l0Y2goY29tbWFuZEFyZyl7XG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBidWlsZERvY2tlci5idWlsZCgpOyAgIFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwiYnVpbGQgdGFyZ2V0IFwiICsgY29tbWFuZEFyZyArIFwiIG5vdCByZWNvZ25pc2VkIVwiKTtcbiAgICB9XG59XG5cblxuXG4iXX0=
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "npmci",
|
||||
"version": "2.1.9",
|
||||
"version": "2.1.11",
|
||||
"description": "",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
|
||||
@@ -3,10 +3,14 @@ import * as NpmciEnv from "./npmci.env";
|
||||
|
||||
|
||||
export let build = function(){
|
||||
let done = plugins.q.defer();;
|
||||
let done = plugins.q.defer();
|
||||
plugins.gulp.dest("./Dockerfile*")
|
||||
.pipe(readDockerfiles)
|
||||
.pipe(plugins.gulpFunction(done.resolve,"atEnd"));
|
||||
.pipe(plugins.gulpFunction(function(){
|
||||
sortDockerfiles()
|
||||
.then(buildDockerfiles)
|
||||
.then(done.resolve);
|
||||
},"atEnd"));
|
||||
return done.promise;
|
||||
}
|
||||
|
||||
@@ -19,29 +23,62 @@ let readDockerfiles = function(){
|
||||
NpmciEnv.dockerFiles.push(
|
||||
myDockerfile
|
||||
);
|
||||
file["Dockerfile"] = myDockerfile;
|
||||
cb(null,file);
|
||||
};
|
||||
}
|
||||
|
||||
let sortDockerfiles = function(){
|
||||
let done = plugins.q.defer();
|
||||
let redoSort:boolean;
|
||||
let sortFunction = function(){
|
||||
redoSort = false;
|
||||
let notYetBuiltImages:string[] = [];
|
||||
NpmciEnv.dockerFiles.forEach((dockerFileArg)=>{
|
||||
notYetBuiltImages.push(dockerFileArg.cleanTag);
|
||||
});
|
||||
NpmciEnv.dockerFiles.sort(function(a,b){
|
||||
plugins.beautylog.log("sort build order for Dockerimages");
|
||||
let aIndex = notYetBuiltImages.indexOf(a.cleanTag);
|
||||
if(aIndex != -1){notYetBuiltImages.splice(aIndex,1)}
|
||||
if(notYetBuiltImages.indexOf(b.cleanTag) != -1){
|
||||
redoSort = true;
|
||||
return -1;
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
});
|
||||
if(redoSort){
|
||||
sortFunction();
|
||||
} else {
|
||||
done.resolve();
|
||||
}
|
||||
};
|
||||
sortFunction();
|
||||
return done.promise;
|
||||
}
|
||||
|
||||
let buildDockerfiles = function(){
|
||||
return function(file,enc,cb){
|
||||
file.myDockerfile.build();
|
||||
cb();
|
||||
}
|
||||
let done = plugins.q.defer();
|
||||
NpmciEnv.dockerFiles.forEach(function(dockerfileArg){
|
||||
dockerfileArg.build();
|
||||
})
|
||||
done.resolve();
|
||||
return done.promise;
|
||||
}
|
||||
|
||||
export class Dockerfile {
|
||||
filePath:string;
|
||||
buildTag:string;
|
||||
repo:string;
|
||||
version:string;
|
||||
cleanTag:string;
|
||||
buildTag:string;
|
||||
content:string;
|
||||
baseImage:string;
|
||||
constructor(options:{filePath?:string,fileContents?:string|Buffer,read?:boolean}){
|
||||
this.filePath = options.filePath;
|
||||
this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo;
|
||||
this.version = dockerFileVersion(plugins.path.parse(options.filePath).base);
|
||||
this.cleanTag = this.repo + ":" + this.version;
|
||||
if(options.filePath && options.read){
|
||||
this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath));
|
||||
};
|
||||
|
||||
@@ -8,6 +8,8 @@ export let build = function(commandArg){
|
||||
switch(commandArg){
|
||||
case "docker":
|
||||
return buildDocker.build();
|
||||
default:
|
||||
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user