Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 61720f47be | |||
| b435fc6bdf | |||
| 70ad41ab86 | |||
| d67109b4bc | |||
| a29e04f9e3 | |||
| 9634ca3b4d | |||
| d2e7488868 | |||
| bb44333d70 | |||
| 87f6adeda4 | |||
| 6334396bfc | |||
| 7a33252f2f | |||
| b7068b7b53 | |||
| 1e5b56a388 | |||
| 786de4ae18 | |||
| 62ee8a26a4 | |||
| f544aef054 | |||
| cb6867dbde | |||
| 5316740a1a | |||
| 06bc1e59f8 | |||
| bd237ccdab | |||
| f51b556fca | |||
| 9ce29a7c24 |
@@ -1,9 +1,13 @@
|
|||||||
image: hosttoday/ht-docker-node:npmci
|
image: hosttoday/ht-docker-node:lts
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
|
- test
|
||||||
|
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm install -g npmci
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
@@ -11,10 +15,6 @@ testLTS:
|
|||||||
- npmci test lts
|
- npmci test lts
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
before_script:
|
|
||||||
- npm uninstall -g npmci
|
|
||||||
- npm install -g npmci
|
|
||||||
|
|
||||||
testSTABLE:
|
testSTABLE:
|
||||||
stage: test
|
stage: test
|
||||||
|
|||||||
19
dist/npmci.build.docker.js
vendored
19
dist/npmci.build.docker.js
vendored
File diff suppressed because one or more lines are too long
4
dist/npmci.env.js
vendored
4
dist/npmci.env.js
vendored
@@ -2,7 +2,9 @@
|
|||||||
require("typings-global");
|
require("typings-global");
|
||||||
var smartstring_1 = require("smartstring");
|
var smartstring_1 = require("smartstring");
|
||||||
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(exports.repo);
|
||||||
exports.dockerFilesBuilt = [];
|
exports.dockerFilesBuilt = [];
|
||||||
exports.dockerFiles = [];
|
exports.dockerFiles = [];
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUd6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFLOUMsd0JBQWdCLEdBQWdCLEVBQUUsQ0FBQztBQUNuQyxtQkFBVyxHQUFnQixFQUFFLENBQUMiLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtHaXRSZXBvfSBmcm9tIFwic21hcnRzdHJpbmdcIjtcbmltcG9ydCB7RG9ja2VyZmlsZX0gZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCJcblxuZXhwb3J0IGxldCByZXBvID0gbmV3IEdpdFJlcG8ocHJvY2Vzcy5lbnYuQ0lfQlVJTERfUkVQTyk7XG5leHBvcnQgbGV0IGRvY2tlclRlc3RUYWc6c3RyaW5nO1xuZXhwb3J0IGxldCBkb2NrZXJSZWxlYXNlVGFnOnN0cmluZztcblxuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xuZXhwb3J0IGxldCBkb2NrZXJGaWxlczpEb2NrZXJmaWxlW10gPSBbXTtcblxuIl19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUd6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBSSxDQUFDLENBQUM7QUFLUCx3QkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO0FBQ25DLG1CQUFXLEdBQWdCLEVBQUUsQ0FBQyIsImZpbGUiOiJucG1jaS5lbnYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge0dpdFJlcG99IGZyb20gXCJzbWFydHN0cmluZ1wiO1xuaW1wb3J0IHtEb2NrZXJmaWxlfSBmcm9tIFwiLi9ucG1jaS5idWlsZC5kb2NrZXJcIlxuXG5leHBvcnQgbGV0IHJlcG8gPSBuZXcgR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcbmNvbnNvbGUubG9nKHByb2Nlc3MuZW52LkNJX0JVSUxEX1JFUE8pO1xuY29uc29sZS5sb2cocmVwbyk7XG5leHBvcnQgbGV0IGRvY2tlclRlc3RUYWc6c3RyaW5nO1xuZXhwb3J0IGxldCBkb2NrZXJSZWxlYXNlVGFnOnN0cmluZztcblxuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xuZXhwb3J0IGxldCBkb2NrZXJGaWxlczpEb2NrZXJmaWxlW10gPSBbXTtcblxuIl19
|
||||||
|
|||||||
1
dist/npmci.plugins.d.ts
vendored
1
dist/npmci.plugins.d.ts
vendored
@@ -10,3 +10,4 @@ export declare let shelljs: any;
|
|||||||
export import smartssh = require("smartssh");
|
export import smartssh = require("smartssh");
|
||||||
export import smartstring = require("smartstring");
|
export import smartstring = require("smartstring");
|
||||||
export import smartfile = require("smartfile");
|
export import smartfile = require("smartfile");
|
||||||
|
export declare let through2: any;
|
||||||
|
|||||||
3
dist/npmci.plugins.js
vendored
3
dist/npmci.plugins.js
vendored
@@ -11,5 +11,6 @@ exports.shelljs = require("shelljs");
|
|||||||
exports.smartssh = require("smartssh");
|
exports.smartssh = require("smartssh");
|
||||||
exports.smartstring = require("smartstring");
|
exports.smartstring = require("smartstring");
|
||||||
exports.smartfile = require("smartfile");
|
exports.smartfile = require("smartfile");
|
||||||
|
exports.through2 = require("through2");
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQztBQUMvQixtQkFBVyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNvbW1hbmRlciA9IHJlcXVpcmUoXCJjb21tYW5kZXJcIik7XG5leHBvcnQgbGV0IGd1bHAgPSByZXF1aXJlKFwiZ3VscFwiKTtcbmV4cG9ydCBsZXQgZ3VscEZ1bmN0aW9uID0gcmVxdWlyZShcImd1bHAtZnVuY3Rpb25cIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpOyJdfQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQztBQUMvQixtQkFBVyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNvbW1hbmRlciA9IHJlcXVpcmUoXCJjb21tYW5kZXJcIik7XG5leHBvcnQgbGV0IGd1bHAgPSByZXF1aXJlKFwiZ3VscFwiKTtcbmV4cG9ydCBsZXQgZ3VscEZ1bmN0aW9uID0gcmVxdWlyZShcImd1bHAtZnVuY3Rpb25cIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpO1xuZXhwb3J0IGxldCB0aHJvdWdoMiA9IHJlcXVpcmUoXCJ0aHJvdWdoMlwiKTsiXX0=
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "2.1.13",
|
"version": "2.1.23",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"shelljs": "^0.7.0",
|
"shelljs": "^0.7.0",
|
||||||
"smartfile": "^3.0.10",
|
"smartfile": "^3.0.10",
|
||||||
"smartssh": "^1.0.5",
|
"smartssh": "^1.0.5",
|
||||||
"smartstring": "^2.0.4",
|
"smartstring": "^2.0.6",
|
||||||
"through2": "^2.0.1",
|
"through2": "^2.0.1",
|
||||||
"typings-global": "^1.0.3"
|
"typings-global": "^1.0.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import * as NpmciEnv from "./npmci.env";
|
|||||||
|
|
||||||
export let build = function(){
|
export let build = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
plugins.gulp.dest("./Dockerfile*")
|
plugins.gulp.src("./Dockerfile*")
|
||||||
.pipe(readDockerfiles())
|
.pipe(readDockerfiles())
|
||||||
.pipe(plugins.gulpFunction(function(){
|
.pipe(plugins.gulpFunction(function(){
|
||||||
sortDockerfiles()
|
sortDockerfiles()
|
||||||
@@ -15,7 +15,7 @@ export let build = function(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
let readDockerfiles = function(){
|
let readDockerfiles = function(){
|
||||||
return plugins.trhough2(function(file,enc,cb){
|
return plugins.through2.obj(function(file,enc,cb){
|
||||||
let myDockerfile = new Dockerfile({
|
let myDockerfile = new Dockerfile({
|
||||||
filePath:file.path,
|
filePath:file.path,
|
||||||
read:true
|
read:true
|
||||||
@@ -30,6 +30,7 @@ let readDockerfiles = function(){
|
|||||||
let sortDockerfiles = function(){
|
let sortDockerfiles = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
let redoSort:boolean;
|
let redoSort:boolean;
|
||||||
|
let sortCounter:number = 0;
|
||||||
let sortFunction = function(){
|
let sortFunction = function(){
|
||||||
redoSort = false;
|
redoSort = false;
|
||||||
let notYetBuiltImages:string[] = [];
|
let notYetBuiltImages:string[] = [];
|
||||||
@@ -37,17 +38,21 @@ let sortDockerfiles = function(){
|
|||||||
notYetBuiltImages.push(dockerFileArg.cleanTag);
|
notYetBuiltImages.push(dockerFileArg.cleanTag);
|
||||||
});
|
});
|
||||||
NpmciEnv.dockerFiles.sort(function(a,b){
|
NpmciEnv.dockerFiles.sort(function(a,b){
|
||||||
plugins.beautylog.log("sort build order for Dockerimages");
|
console.log("iteration: " + sortCounter.toString());
|
||||||
|
console.log(notYetBuiltImages)
|
||||||
|
console.log(a.cleanTag);
|
||||||
let aIndex = notYetBuiltImages.indexOf(a.cleanTag);
|
let aIndex = notYetBuiltImages.indexOf(a.cleanTag);
|
||||||
if(aIndex != -1){notYetBuiltImages.splice(aIndex,1)}
|
if(aIndex != -1){notYetBuiltImages.splice(aIndex,1)}
|
||||||
if(notYetBuiltImages.indexOf(b.cleanTag) != -1){
|
console.log(notYetBuiltImages);
|
||||||
|
if(notYetBuiltImages.indexOf(b.baseImage) != -1){
|
||||||
redoSort = true;
|
redoSort = true;
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(redoSort){
|
if(redoSort && sortCounter <= 50){
|
||||||
|
sortCounter++;
|
||||||
sortFunction();
|
sortFunction();
|
||||||
} else {
|
} else {
|
||||||
done.resolve();
|
done.resolve();
|
||||||
@@ -108,7 +113,7 @@ let dockerFileVersion = function(dockerfileNameArg:string):string{
|
|||||||
let versionString:string;
|
let versionString:string;
|
||||||
let versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/;
|
let versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/;
|
||||||
let regexResultArray = versionRegex.exec(dockerfileNameArg);
|
let regexResultArray = versionRegex.exec(dockerfileNameArg);
|
||||||
if(regexResultArray.length = 2){
|
if(regexResultArray && regexResultArray.length == 2){
|
||||||
versionString = regexResultArray[1];
|
versionString = regexResultArray[1];
|
||||||
} else {
|
} else {
|
||||||
versionString = "latest";
|
versionString = "latest";
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import {GitRepo} from "smartstring";
|
|||||||
import {Dockerfile} from "./npmci.build.docker"
|
import {Dockerfile} from "./npmci.build.docker"
|
||||||
|
|
||||||
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
|
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(repo);
|
||||||
export let dockerTestTag:string;
|
export let dockerTestTag:string;
|
||||||
export let dockerReleaseTag:string;
|
export let dockerReleaseTag:string;
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ export let request = require("request");
|
|||||||
export let shelljs = require("shelljs");
|
export let shelljs = require("shelljs");
|
||||||
export import smartssh = require("smartssh");
|
export import smartssh = require("smartssh");
|
||||||
export import smartstring = require("smartstring");
|
export import smartstring = require("smartstring");
|
||||||
export import smartfile = require("smartfile");
|
export import smartfile = require("smartfile");
|
||||||
|
export let through2 = require("through2");
|
||||||
Reference in New Issue
Block a user