"use strict"; var plugins = require("./npmci.plugins"); var NpmciEnv = require("./npmci.env"); exports.build = function () { var done = plugins.q.defer(); done.resolve(); return done.promise; }; var readDockerfiles = function () { plugins.gulp.dest("./Dockerfile*") .pipe(makeDockerfiles); }; var makeDockerfiles = function () { return function (file, enc, cb) { NpmciEnv.dockerFiles.push(new Dockerfile({ filePath: file.path, read: true })); cb(); }; }; var Dockerfile = (function () { function Dockerfile(options) { this.filePath = options.filePath; this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo; this.version = dockerFileVersion(plugins.path.parse(options.filePath).base); if (options.filePath && options.read) { this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath)); } ; this.baseImage = dockerBaseImage(this.content); } ; Dockerfile.prototype.build = function () { var tag = exports.dockerTag(this.repo, this.version); plugins.shelljs.exec("docker build -t " + tag + " -f " + this.filePath + " ."); this.buildTag = tag; }; ; Dockerfile.prototype.push = function () { if (this.buildTag) { plugins.shelljs.exec("docker push " + this.buildTag); } else { plugins.beautylog.error("Dockerfile hasn't been built yet!"); } }; return Dockerfile; }()); exports.Dockerfile = Dockerfile; var dockerFileVersion = function (dockerfileNameArg) { var versionString; var versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/; var regexResultArray = versionRegex.exec(dockerfileNameArg); if (regexResultArray.length = 2) { versionString = regexResultArray[1]; } else { versionString = "latest"; } return versionString; }; var dockerBaseImage = function (dockerfileContentArg) { var baseImageRegex = /FROM\s([a-zA-z0-9\/\-\:]*)\n/; var regexResultArray = baseImageRegex.exec(dockerfileContentArg); return regexResultArray[1]; }; exports.dockerTag = function (repoArg, versionArg) { var tagString; var registry = NpmciEnv.dockerRegistry; if (process.env.CI_BUILD_STAGE == "test") { registry = "registry.gitlab.com"; } var repo = repoArg; var version = versionArg; if (process.env.CI_BUILD_STAGE == "test" || process.env.CI_BUILD_STAGE == "build") { version = version + "_test"; } tagString = registry + "/" + repo + ":" + version; return tagString; }; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxTQUFTLEdBQUcsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQztJQUNsRCxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5idWlsZC5kb2NrZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIlxuaW1wb3J0ICogYXMgTnBtY2lFbnYgZnJvbSBcIi4vbnBtY2kuZW52XCI7XG5cblxuZXhwb3J0IGxldCBidWlsZCA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgcmVhZERvY2tlcmZpbGVzID0gZnVuY3Rpb24oKXtcbiAgICBwbHVnaW5zLmd1bHAuZGVzdChcIi4vRG9ja2VyZmlsZSpcIilcbiAgICAgICAgLnBpcGUobWFrZURvY2tlcmZpbGVzKTtcbn07XG5cbmxldCBtYWtlRG9ja2VyZmlsZXMgPSBmdW5jdGlvbigpe1xuICAgIHJldHVybiBmdW5jdGlvbihmaWxlLGVuYyxjYil7XG4gICAgICAgIE5wbWNpRW52LmRvY2tlckZpbGVzLnB1c2goXG4gICAgICAgICAgICBuZXcgRG9ja2VyZmlsZSh7XG4gICAgICAgICAgICAgICAgZmlsZVBhdGg6ZmlsZS5wYXRoLFxuICAgICAgICAgICAgICAgIHJlYWQ6dHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgY2IoKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRG9ja2VyZmlsZSB7XG4gICAgZmlsZVBhdGg6c3RyaW5nO1xuICAgIGJ1aWxkVGFnOnN0cmluZztcbiAgICByZXBvOnN0cmluZztcbiAgICB2ZXJzaW9uOnN0cmluZztcbiAgICBjb250ZW50OnN0cmluZztcbiAgICBiYXNlSW1hZ2U6c3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6e2ZpbGVQYXRoPzpzdHJpbmcsZmlsZUNvbnRlbnRzPzpzdHJpbmd8QnVmZmVyLHJlYWQ/OmJvb2xlYW59KXtcbiAgICAgICAgdGhpcy5maWxlUGF0aCA9IG9wdGlvbnMuZmlsZVBhdGg7XG4gICAgICAgIHRoaXMucmVwbyA9IE5wbWNpRW52LnJlcG8udXNlciArIFwiL1wiICsgTnBtY2lFbnYucmVwby5yZXBvO1xuICAgICAgICB0aGlzLnZlcnNpb24gPSBkb2NrZXJGaWxlVmVyc2lvbihwbHVnaW5zLnBhdGgucGFyc2Uob3B0aW9ucy5maWxlUGF0aCkuYmFzZSk7XG4gICAgICAgIGlmKG9wdGlvbnMuZmlsZVBhdGggJiYgb3B0aW9ucy5yZWFkKXtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IHBsdWdpbnMuc21hcnRmaWxlLmxvY2FsLnRvU3RyaW5nU3luYyhwbHVnaW5zLnBhdGgucmVzb2x2ZShvcHRpb25zLmZpbGVQYXRoKSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYmFzZUltYWdlID0gZG9ja2VyQmFzZUltYWdlKHRoaXMuY29udGVudCk7XG4gICAgfTtcbiAgICBidWlsZCgpe1xuICAgICAgICBsZXQgdGFnID0gZG9ja2VyVGFnKHRoaXMucmVwbyx0aGlzLnZlcnNpb24pO1xuICAgICAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcImRvY2tlciBidWlsZCAtdCBcIiArIHRhZyArIFwiIC1mIFwiICsgdGhpcy5maWxlUGF0aCArIFwiIC5cIik7XG4gICAgICAgIHRoaXMuYnVpbGRUYWcgPSB0YWc7XG4gICAgfTtcbiAgICBwdXNoKCl7XG4gICAgICAgIGlmKHRoaXMuYnVpbGRUYWcpe1xuICAgICAgICAgICAgcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXCJkb2NrZXIgcHVzaCBcIiArIHRoaXMuYnVpbGRUYWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJEb2NrZXJmaWxlIGhhc24ndCBiZWVuIGJ1aWx0IHlldCFcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmxldCBkb2NrZXJGaWxlVmVyc2lvbiA9IGZ1bmN0aW9uKGRvY2tlcmZpbGVOYW1lQXJnOnN0cmluZyk6c3RyaW5ne1xuICAgIGxldCB2ZXJzaW9uU3RyaW5nOnN0cmluZztcbiAgICBsZXQgdmVyc2lvblJlZ2V4ID0gL0RvY2tlcmZpbGVfKFthLXpBLVowLTlcXC5dKikkLztcbiAgICBsZXQgcmVnZXhSZXN1bHRBcnJheSA9IHZlcnNpb25SZWdleC5leGVjKGRvY2tlcmZpbGVOYW1lQXJnKTtcbiAgICBpZihyZWdleFJlc3VsdEFycmF5Lmxlbmd0aCA9IDIpe1xuICAgICAgICB2ZXJzaW9uU3RyaW5nID0gcmVnZXhSZXN1bHRBcnJheVsxXTsgICAgICAgIFxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnNpb25TdHJpbmcgPSBcImxhdGVzdFwiO1xuICAgIH1cbiAgICByZXR1cm4gdmVyc2lvblN0cmluZztcbn1cblxubGV0IGRvY2tlckJhc2VJbWFnZSA9IGZ1bmN0aW9uKGRvY2tlcmZpbGVDb250ZW50QXJnOnN0cmluZyl7XG4gICAgbGV0IGJhc2VJbWFnZVJlZ2V4ID0gL0ZST01cXHMoW2EtekEtejAtOVxcL1xcLVxcOl0qKVxcbi9cbiAgICBsZXQgcmVnZXhSZXN1bHRBcnJheSA9IGJhc2VJbWFnZVJlZ2V4LmV4ZWMoZG9ja2VyZmlsZUNvbnRlbnRBcmcpXG4gICAgcmV0dXJuIHJlZ2V4UmVzdWx0QXJyYXlbMV07XG59XG5cbmV4cG9ydCBsZXQgZG9ja2VyVGFnID0gZnVuY3Rpb24ocmVwb0FyZzpzdHJpbmcsdmVyc2lvbkFyZzpzdHJpbmcpOnN0cmluZ3tcbiAgICBsZXQgdGFnU3RyaW5nOnN0cmluZztcbiAgICBsZXQgcmVnaXN0cnkgPSBOcG1jaUVudi5kb2NrZXJSZWdpc3RyeTtcbiAgICBpZihwcm9jZXNzLmVudi5DSV9CVUlMRF9TVEFHRSA9PSBcInRlc3RcIil7XG4gICAgICAgIHJlZ2lzdHJ5ID0gXCJyZWdpc3RyeS5naXRsYWIuY29tXCI7XG4gICAgfSBcbiAgICBsZXQgcmVwbyA9IHJlcG9Bcmc7XG4gICAgbGV0IHZlcnNpb24gPSB2ZXJzaW9uQXJnO1xuICAgIGlmKHByb2Nlc3MuZW52LkNJX0JVSUxEX1NUQUdFID09IFwidGVzdFwiIHx8IHByb2Nlc3MuZW52LkNJX0JVSUxEX1NUQUdFID09IFwiYnVpbGRcIil7XG4gICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uICsgXCJfdGVzdFwiO1xuICAgIH1cbiAgICB0YWdTdHJpbmcgPSByZWdpc3RyeSArIFwiL1wiICsgcmVwbyArIFwiOlwiICsgdmVyc2lvbjtcbiAgICByZXR1cm4gdGFnU3RyaW5nO1xufTtcbiJdfQ==