Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 15714204a6 | |||
| 35c4963192 | |||
| b3c5db3ed9 | |||
| 0701429782 | |||
| 24dd9edcae | |||
| 3e1397e13f | |||
| ecb21a787f | |||
| 10233ffae0 | |||
| 4cea1d29d2 | |||
| 3bf2502f87 | |||
| c012810a8c | |||
| ae5b1b1fa7 | |||
| f1bf000744 |
20
dist/mod_docker/mod.builddocker.js
vendored
20
dist/mod_docker/mod.builddocker.js
vendored
File diff suppressed because one or more lines are too long
37
dist/mod_prepare/index.js
vendored
37
dist/mod_prepare/index.js
vendored
@@ -34,28 +34,37 @@ let npm = () => __awaiter(this, void 0, void 0, function* () {
|
|||||||
*/
|
*/
|
||||||
let docker = () => __awaiter(this, void 0, void 0, function* () {
|
let docker = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
env.setDockerRegistry('docker.io'); // TODO: checkup why we set this here
|
env.setDockerRegistry('docker.io'); // TODO: checkup why we set this here
|
||||||
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/;
|
// handle registries
|
||||||
// Login external reigstry
|
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_LOGIN_DOCKER*', (envString) => __awaiter(this, void 0, void 0, function* () {
|
||||||
if (!process.env.NPMCI_LOGIN_DOCKER) {
|
let dockerRegexResultArray = envString.split('|');
|
||||||
plugins.beautylog.warn('You have to specify Login Data to an external Docker Registry');
|
if (dockerRegexResultArray.length !== 3) {
|
||||||
plugins.beautylog.warn('|- As a result only the gitlab registry is availble for this build.');
|
plugins.beautylog.error('malformed docker env var...');
|
||||||
}
|
process.exit(1);
|
||||||
else {
|
return;
|
||||||
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
|
}
|
||||||
|
let registry = dockerRegexResultArray[0];
|
||||||
let username = dockerRegexResultArray[1];
|
let username = dockerRegexResultArray[1];
|
||||||
let password = dockerRegexResultArray[2];
|
let password = dockerRegexResultArray[2];
|
||||||
yield npmci_bash_1.bash('docker login -u ' + username + ' -p ' + password);
|
if (registry === 'docker.io') {
|
||||||
}
|
yield npmci_bash_1.bash(`docker login -u ${username} -p ${password}`);
|
||||||
|
plugins.beautylog.info('Logged in to standard docker hub');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
yield npmci_bash_1.bash(`docker login -u ${username} -p ${password} ${registry}`);
|
||||||
|
}
|
||||||
|
plugins.beautylog.success(`docker authenticated for ${registry}!`);
|
||||||
|
}));
|
||||||
// Always login to GitLab Registry
|
// Always login to GitLab Registry
|
||||||
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com');
|
yield dockerGitlab();
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
* prepare docker for gitlab registry
|
* prepare docker for gitlab registry
|
||||||
*/
|
*/
|
||||||
let dockerGitlab = () => __awaiter(this, void 0, void 0, function* () {
|
let dockerGitlab = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
env.setDockerRegistry('registry.gitlab.com');
|
// env.setDockerRegistry('registry.gitlab.com')
|
||||||
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com');
|
yield npmci_bash_1.bash(`docker login -u gitlab-ci-token -p ${process.env.CI_BUILD_TOKEN} registry.gitlab.com`);
|
||||||
|
plugins.beautylog.success(`docker authenticated for registry.gitlab.com!`);
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
@@ -83,4 +92,4 @@ exports.prepare = (serviceArg) => __awaiter(this, void 0, void 0, function* () {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJlcGFyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLDhDQUFvQztBQUNwQyxvQ0FBbUM7QUFDbkMsMkNBQTBDO0FBUzFDOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLFdBQVcsR0FBVyxtQ0FBbUMsQ0FBQTtJQUM3RCxJQUFJLFFBQVEsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQTtJQUNsRCxJQUFJLGVBQWUsR0FBVyxXQUFXLEdBQUcsUUFBUSxDQUFBO0lBQ3BELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDYixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7UUFDMUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNsRSxNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDWCxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQyxxQ0FBcUM7SUFDeEUsSUFBSSxXQUFXLEdBQUcscUNBQXFDLENBQUE7SUFFdkQsMEJBQTBCO0lBQzFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0RBQStELENBQUMsQ0FBQTtRQUN2RixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxRUFBcUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksc0JBQXNCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDN0UsSUFBSSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEMsSUFBSSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEMsTUFBTSxpQkFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxHQUFHLEdBQUcscUJBQXFCLENBQUMsQ0FBQTtJQUN0SCxNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxZQUFZLEdBQUc7SUFDakIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDNUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsR0FBRyxHQUFHLHFCQUFxQixDQUFDLENBQUE7SUFDdEgsTUFBTSxDQUFBO0FBQ1IsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNILElBQUksR0FBRyxHQUFHO0lBQ1IsSUFBSSxTQUFTLEdBQUcsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzdDLE1BQU0sU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSxDQUFBO0FBRUQ7OztHQUdHO0FBQ1EsUUFBQSxPQUFPLEdBQUcsQ0FBTyxVQUF3QjtJQUNsRCxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssS0FBSztZQUNSLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLEtBQUssUUFBUTtZQUNYLE1BQU0sQ0FBQyxNQUFNLE1BQU0sRUFBRSxDQUFBO1FBQ3ZCLEtBQUssZUFBZTtZQUNsQixNQUFNLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQTtRQUM3QixLQUFLLEtBQUs7WUFDUixNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNwQjtZQUNFLEtBQUssQ0FBQTtJQUNULENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQSJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJlcGFyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLDhDQUFvQztBQUNwQyxvQ0FBbUM7QUFDbkMsMkNBQTBDO0FBUzFDOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLFdBQVcsR0FBVyxtQ0FBbUMsQ0FBQTtJQUM3RCxJQUFJLFFBQVEsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQTtJQUNsRCxJQUFJLGVBQWUsR0FBVyxXQUFXLEdBQUcsUUFBUSxDQUFBO0lBQ3BELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDYixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7UUFDMUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNsRSxNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDWCxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQyxxQ0FBcUM7SUFFeEUsb0JBQW9CO0lBQ3BCLE9BQU8sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxDQUFPLFNBQVM7UUFDdEYsSUFBSSxzQkFBc0IsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pELEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7WUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNmLE1BQU0sQ0FBQTtRQUNSLENBQUM7UUFDRCxJQUFJLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxJQUFJLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxJQUFJLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLGlCQUFJLENBQUMsbUJBQW1CLFFBQVEsT0FBTyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUE7UUFDNUQsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxpQkFBSSxDQUFDLG1CQUFtQixRQUFRLE9BQU8sUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRCQUE0QixRQUFRLEdBQUcsQ0FBQyxDQUFBO0lBQ3BFLENBQUMsQ0FBQSxDQUFDLENBQUE7SUFFRixrQ0FBa0M7SUFDbEMsTUFBTSxZQUFZLEVBQUUsQ0FBQTtJQUNwQixNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxZQUFZLEdBQUc7SUFDakIsK0NBQStDO0lBQy9DLE1BQU0saUJBQUksQ0FBQyxzQ0FBc0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLHNCQUFzQixDQUFDLENBQUE7SUFDbEcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsK0NBQStDLENBQUMsQ0FBQTtJQUMxRSxNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLFNBQVMsR0FBRyxNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0MsTUFBTSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUE7QUFDdkIsQ0FBQyxDQUFBLENBQUE7QUFFRDs7O0dBR0c7QUFDUSxRQUFBLE9BQU8sR0FBRyxDQUFPLFVBQXdCO0lBQ2xELE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxLQUFLO1lBQ1IsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDcEIsS0FBSyxRQUFRO1lBQ1gsTUFBTSxDQUFDLE1BQU0sTUFBTSxFQUFFLENBQUE7UUFDdkIsS0FBSyxlQUFlO1lBQ2xCLE1BQU0sQ0FBQyxNQUFNLFlBQVksRUFBRSxDQUFBO1FBQzdCLEtBQUssS0FBSztZQUNSLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCO1lBQ0UsS0FBSyxDQUFBO0lBQ1QsQ0FBQztBQUNILENBQUMsQ0FBQSxDQUFBIn0=
|
||||||
26
package.json
26
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "2.4.7",
|
"version": "2.4.13",
|
||||||
"description": "node and docker in gitlab ci on steroids",
|
"description": "node and docker in gitlab ci on steroids",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
@@ -22,34 +22,34 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/gitzone/npmci#README",
|
"homepage": "https://gitlab.com/gitzone/npmci#README",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"tapbundle": "^1.0.14"
|
"tapbundle": "^1.1.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/lodash": "^4.14.67",
|
"@types/lodash": "^4.14.74",
|
||||||
"@types/node": "^8.0.6",
|
"@types/node": "^8.0.25",
|
||||||
"@types/shelljs": "^0.7.2",
|
"@types/shelljs": "^0.7.4",
|
||||||
"@types/through2": "^2.0.33",
|
"@types/through2": "^2.0.33",
|
||||||
"beautylog": "^6.1.10",
|
"beautylog": "^6.1.10",
|
||||||
"cflare": "^1.0.5",
|
"cflare": "^1.0.5",
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^3.9.1",
|
||||||
"gulp-function": "^2.2.9",
|
"gulp-function": "^2.2.9",
|
||||||
"lodash": "^4.17.4",
|
"lodash": "^4.17.4",
|
||||||
"npmextra": "^2.0.5",
|
"npmextra": "^2.0.9",
|
||||||
"projectinfo": "^3.0.2",
|
"projectinfo": "^3.0.2",
|
||||||
"request": "^2.81.0",
|
"request": "^2.81.0",
|
||||||
"shelljs": "^0.7.8",
|
"shelljs": "^0.7.8",
|
||||||
"smartcli": "^2.0.7",
|
"smartcli": "^2.0.7",
|
||||||
"smartdelay": "^1.0.3",
|
"smartdelay": "^1.0.3",
|
||||||
"smartfile": "^4.2.17",
|
"smartfile": "^4.2.20",
|
||||||
"smartmonitor": "^1.0.3",
|
"smartmonitor": "^1.0.3",
|
||||||
"smartparam": "^0.1.1",
|
"smartparam": "^1.0.1",
|
||||||
"smartq": "^1.1.1",
|
"smartq": "^1.1.6",
|
||||||
"smartshell": "^1.0.8",
|
"smartshell": "^1.0.13",
|
||||||
"smartsocket": "^1.1.7",
|
"smartsocket": "^1.1.10",
|
||||||
"smartssh": "^1.2.2",
|
"smartssh": "^1.2.2",
|
||||||
"smartstring": "^2.0.24",
|
"smartstring": "^2.0.24",
|
||||||
"smartsystem": "^1.0.18",
|
"smartsystem": "^2.0.2",
|
||||||
"through2": "^2.0.3",
|
"through2": "^2.0.3",
|
||||||
"typings-global": "^1.0.19"
|
"typings-global": "^1.0.20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ export class Dockerfile {
|
|||||||
this.buildTag = this.cleanTag
|
this.buildTag = this.cleanTag
|
||||||
this.gitlabTestTag = dockerTag('registry.gitlab.com', this.repo, this.version, 'test')
|
this.gitlabTestTag = dockerTag('registry.gitlab.com', this.repo, this.version, 'test')
|
||||||
this.gitlabReleaseTag = dockerTag('registry.gitlab.com', this.repo, this.version)
|
this.gitlabReleaseTag = dockerTag('registry.gitlab.com', this.repo, this.version)
|
||||||
this.releaseTag = dockerTag(NpmciEnv.dockerRegistry, this.repo, this.version)
|
this.releaseTag = dockerTag('docker.io', this.repo, this.version)
|
||||||
this.containerName = 'dockerfile-' + this.version
|
this.containerName = 'dockerfile-' + this.version
|
||||||
if (options.filePath && options.read) {
|
if (options.filePath && options.read) {
|
||||||
this.content = plugins.smartfile.fs.toStringSync(plugins.path.resolve(options.filePath))
|
this.content = plugins.smartfile.fs.toStringSync(plugins.path.resolve(options.filePath))
|
||||||
@@ -193,20 +193,16 @@ export class Dockerfile {
|
|||||||
* pushes the Dockerfile to a registry
|
* pushes the Dockerfile to a registry
|
||||||
*/
|
*/
|
||||||
async push (stageArg) {
|
async push (stageArg) {
|
||||||
|
await bash(`docker tag ${this.buildTag} ${this.releaseTag}`)
|
||||||
|
await bash(`docker tag ${this.buildTag} ${this.gitlabReleaseTag}`)
|
||||||
|
await bash(`docker tag ${this.buildTag} ${this.gitlabTestTag}`)
|
||||||
switch (stageArg) {
|
switch (stageArg) {
|
||||||
case 'release':
|
case 'release':
|
||||||
await bash(`docker tag ${this.buildTag} ${this.releaseTag}`)
|
await bash(`docker push ${this.gitlabReleaseTag}`)
|
||||||
await bash(`docker push ${this.releaseTag}`)
|
await bash(`docker push ${this.releaseTag}`)
|
||||||
|
|
||||||
// if release registry is different from gitlab
|
|
||||||
if (NpmciEnv.dockerRegistry !== 'registry.gitlab.com') {
|
|
||||||
await bash(`docker tag ${this.buildTag} ${this.gitlabReleaseTag}`)
|
|
||||||
await bash(`docker push ${this.gitlabReleaseTag}`)
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case 'test':
|
case 'test':
|
||||||
default:
|
default:
|
||||||
await bash(`docker tag ${this.buildTag} ${this.gitlabTestTag}`)
|
|
||||||
await bash(`docker push ${this.gitlabTestTag}`)
|
await bash(`docker push ${this.gitlabTestTag}`)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -216,9 +212,8 @@ export class Dockerfile {
|
|||||||
* pulls the Dockerfile from a registry
|
* pulls the Dockerfile from a registry
|
||||||
*/
|
*/
|
||||||
async pull (registryArg: string) {
|
async pull (registryArg: string) {
|
||||||
let pullTag = this.gitlabTestTag
|
await bash(`docker pull ${this.gitlabTestTag}`)
|
||||||
await bash('docker pull ' + pullTag)
|
await bash(`docker tag ${this.gitlabTestTag} ${this.buildTag}`)
|
||||||
await bash('docker tag ' + pullTag + ' ' + this.buildTag)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -32,21 +32,29 @@ let npm = async () => {
|
|||||||
*/
|
*/
|
||||||
let docker = async () => {
|
let docker = async () => {
|
||||||
env.setDockerRegistry('docker.io') // TODO: checkup why we set this here
|
env.setDockerRegistry('docker.io') // TODO: checkup why we set this here
|
||||||
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/
|
|
||||||
|
|
||||||
// Login external reigstry
|
// handle registries
|
||||||
if (!process.env.NPMCI_LOGIN_DOCKER) {
|
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_LOGIN_DOCKER*', async (envString) => {
|
||||||
plugins.beautylog.warn('You have to specify Login Data to an external Docker Registry')
|
let dockerRegexResultArray = envString.split('|')
|
||||||
plugins.beautylog.warn('|- As a result only the gitlab registry is availble for this build.')
|
if (dockerRegexResultArray.length !== 3) {
|
||||||
} else {
|
plugins.beautylog.error('malformed docker env var...')
|
||||||
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER)
|
process.exit(1)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let registry = dockerRegexResultArray[0]
|
||||||
let username = dockerRegexResultArray[1]
|
let username = dockerRegexResultArray[1]
|
||||||
let password = dockerRegexResultArray[2]
|
let password = dockerRegexResultArray[2]
|
||||||
await bash('docker login -u ' + username + ' -p ' + password)
|
if (registry === 'docker.io') {
|
||||||
}
|
await bash(`docker login -u ${username} -p ${password}`)
|
||||||
|
plugins.beautylog.info('Logged in to standard docker hub')
|
||||||
|
} else {
|
||||||
|
await bash(`docker login -u ${username} -p ${password} ${registry}`)
|
||||||
|
}
|
||||||
|
plugins.beautylog.success(`docker authenticated for ${registry}!`)
|
||||||
|
})
|
||||||
|
|
||||||
// Always login to GitLab Registry
|
// Always login to GitLab Registry
|
||||||
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com')
|
await dockerGitlab()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,8 +62,9 @@ let docker = async () => {
|
|||||||
* prepare docker for gitlab registry
|
* prepare docker for gitlab registry
|
||||||
*/
|
*/
|
||||||
let dockerGitlab = async () => {
|
let dockerGitlab = async () => {
|
||||||
env.setDockerRegistry('registry.gitlab.com')
|
// env.setDockerRegistry('registry.gitlab.com')
|
||||||
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com')
|
await bash(`docker login -u gitlab-ci-token -p ${process.env.CI_BUILD_TOKEN} registry.gitlab.com`)
|
||||||
|
plugins.beautylog.success(`docker authenticated for registry.gitlab.com!`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user