Compare commits

...

12 Commits

Author SHA1 Message Date
8e9a61bbb2 4.1.29 2024-05-23 21:47:07 +02:00
dc809a6023 fix(core): update 2024-05-23 21:47:06 +02:00
7eeca992b0 4.1.28 2024-05-17 16:23:48 +02:00
d018102014 fix(core): update 2024-05-17 16:23:47 +02:00
838f2d6959 4.1.27 2023-08-24 17:25:56 +02:00
0d42e5f6eb fix(core): update 2023-08-24 17:25:55 +02:00
f96de8cdc3 4.1.26 2023-08-09 11:26:22 +02:00
965833916f fix(core): update 2023-08-09 11:26:22 +02:00
81ec1391e3 4.1.25 2023-08-09 11:23:57 +02:00
bbbca44640 fix(core): update 2023-08-09 11:23:56 +02:00
7ba7dc54a1 4.1.24 2023-08-08 23:32:08 +02:00
4f98eeec2a fix(core): update 2023-08-08 23:32:07 +02:00
12 changed files with 1329 additions and 429 deletions

View File

@@ -12,10 +12,10 @@
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "shipzone",
"gitscope": "ship.zone",
"gitrepo": "npmci",
"description": "node and docker in gitlab ci on steroids",
"npmPackagename": "@shipzone/npmci",
"npmPackagename": "@ship.zone/npmci",
"license": "MIT"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@shipzone/npmci",
"version": "4.1.23",
"name": "@ship.zone/npmci",
"version": "4.1.29",
"private": false,
"description": "node and docker in gitlab ci on steroids",
"main": "dist_ts/index.js",
@@ -29,21 +29,21 @@
"@gitzone/tsbuild": "^2.1.66",
"@gitzone/tsrun": "^1.2.44",
"@gitzone/tstest": "^1.0.77",
"@push.rocks/tapbundle": "^5.0.12",
"@types/node": "^20.4.2"
"@push.rocks/tapbundle": "^5.0.15",
"@types/node": "^20.5.4"
},
"dependencies": {
"@apiglobal/typedrequest": "^2.0.12",
"@push.rocks/lik": "^6.0.3",
"@push.rocks/npmextra": "^3.0.9",
"@push.rocks/projectinfo": "^5.0.1",
"@push.rocks/qenv": "^5.0.2",
"@api.global/typedrequest": "^3.0.1",
"@push.rocks/lik": "^6.0.5",
"@push.rocks/npmextra": "^4.0.0",
"@push.rocks/projectinfo": "^5.0.2",
"@push.rocks/qenv": "^6.0.2",
"@push.rocks/smartanalytics": "^2.0.15",
"@push.rocks/smartcli": "^4.0.6",
"@push.rocks/smartcli": "^4.0.8",
"@push.rocks/smartdelay": "^3.0.5",
"@push.rocks/smartenv": "^5.0.5",
"@push.rocks/smartfile": "^10.0.28",
"@push.rocks/smartgit": "^3.0.0",
"@push.rocks/smartfile": "^10.0.30",
"@push.rocks/smartgit": "^3.0.1",
"@push.rocks/smartlog": "^3.0.3",
"@push.rocks/smartlog-destination-local": "^9.0.0",
"@push.rocks/smartobject": "^1.0.12",
@@ -51,9 +51,9 @@
"@push.rocks/smartpromise": "^4.0.2",
"@push.rocks/smartrequest": "^2.0.18",
"@push.rocks/smartshell": "^3.0.3",
"@push.rocks/smartsocket": "^2.0.19",
"@push.rocks/smartssh": "^2.0.0",
"@push.rocks/smartstring": "^4.0.7",
"@push.rocks/smartsocket": "^2.0.22",
"@push.rocks/smartssh": "^2.0.1",
"@push.rocks/smartstring": "^4.0.8",
"@servezone/interfaces": "^1.0.3",
"@tsclass/tsclass": "^4.0.42",
"@types/through2": "^2.0.38",

1631
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
FROM mygroup/myrepo:sometag2
RUN apt-get update

View File

@@ -19,24 +19,20 @@ process.cwd = () => {
return path.join(smartpath.get.dirnameFromImportMetaUrl(import.meta.url), 'assets/');
};
let npmci: typeof import('../ts/index.js');
type TNpmciTypes = typeof import('../ts/index.js');
tap.preTask('should import npmci', async () => {
npmci = await import('../ts/index.js');
});
import type * as npmciTypes from '../ts/index.js';
const npmci = await import('../ts/index.js');
// ======
// Docker
// ======
let dockerfile1: npmci.Dockerfile;
let dockerfile2: npmci.Dockerfile;
let sortableArray: npmci.Dockerfile[];
let dockerfile1: npmciTypes.Dockerfile;
let dockerfile2: npmciTypes.Dockerfile;
let sortableArray: npmciTypes.Dockerfile[];
tap.test('should return valid Dockerfiles', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
dockerfile1 = new npmci.Dockerfile(npmciInstance.dockerManager, {
filePath: './Dockerfile',
read: true,
@@ -51,8 +47,9 @@ tap.test('should return valid Dockerfiles', async () => {
tap.test('should read a directory of Dockerfiles', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
return npmci.Dockerfile.readDockerfiles(npmciInstance.dockerManager).then(
async (readDockerfilesArrayArg: npmci.Dockerfile[]) => {
async (readDockerfilesArrayArg: npmciTypes.Dockerfile[]) => {
sortableArray = readDockerfilesArrayArg;
return expect(readDockerfilesArrayArg[1].version).toEqual('sometag1');
}
@@ -61,7 +58,7 @@ tap.test('should read a directory of Dockerfiles', async () => {
tap.test('should sort an array of Dockerfiles', async () => {
return npmci.Dockerfile.sortDockerfiles(sortableArray).then(
async (sortedArrayArg: npmci.Dockerfile[]) => {
async (sortedArrayArg: npmciTypes.Dockerfile[]) => {
console.log(sortedArrayArg);
}
);
@@ -69,6 +66,7 @@ tap.test('should sort an array of Dockerfiles', async () => {
tap.test('should build all Dockerfiles', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
return npmciInstance.dockerManager.handleCli({
_: ['docker', 'build'],
});
@@ -76,6 +74,7 @@ tap.test('should build all Dockerfiles', async () => {
tap.test('should test all Dockerfiles', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
return npmciInstance.dockerManager.handleCli({
_: ['docker', 'test'],
});
@@ -83,6 +82,7 @@ tap.test('should test all Dockerfiles', async () => {
tap.test('should test dockerfiles', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
return npmciInstance.dockerManager.handleCli({
_: ['docker', 'test'],
});
@@ -90,6 +90,7 @@ tap.test('should test dockerfiles', async () => {
tap.test('should login docker daemon', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
return npmciInstance.dockerManager.handleCli({
_: ['docker', 'login'],
});
@@ -110,6 +111,7 @@ tap.test('should prepare SSH keys', async () => {
// ====
tap.test('should install a certain version of node', async () => {
const npmciInstance = new npmci.Npmci();
await npmciInstance.start();
await npmciInstance.nodejsManager.handleCli({
_: ['node', 'install', 'stable'],
});

View File

@@ -2,7 +2,7 @@
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@shipzone/npmci',
version: '4.1.23',
name: '@ship.zone/npmci',
version: '4.1.29',
description: 'node and docker in gitlab ci on steroids'
}

View File

@@ -6,5 +6,5 @@ export const npmciInstance = new Npmci();
export { Dockerfile, Npmci };
export const runCli = async () => {
npmciInstance.start();
await npmciInstance.start();
};

View File

@@ -117,24 +117,24 @@ export class Dockerfile {
}
/**
* returns a version for a docker file
* @execution SYNC
*/
public static dockerFileVersion(dockerfileInstanceArg: Dockerfile, dockerfileNameArg: string): string {
let versionString: string;
const versionRegex = /Dockerfile_([^:_]*)$/;
const regexResultArray = versionRegex.exec(dockerfileNameArg);
if (regexResultArray && regexResultArray.length === 2) {
versionString = regexResultArray[1];
} else {
versionString = 'latest';
}
versionString = versionString.replace(
'##version##',
dockerfileInstanceArg.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version
);
return versionString;
* returns a version for a docker file
* @execution SYNC
*/
public static dockerFileVersion(dockerfileInstanceArg: Dockerfile, dockerfileNameArg: string): string {
let versionString: string;
const versionRegex = /Dockerfile_(.+)$/;
const regexResultArray = versionRegex.exec(dockerfileNameArg);
if (regexResultArray && regexResultArray.length === 2) {
versionString = regexResultArray[1];
} else {
versionString = 'latest';
}
versionString = versionString.replace(
'##version##',
dockerfileInstanceArg.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version
);
return versionString;
}
/**
* returns the docker base image for a Dockerfile

View File

@@ -39,11 +39,16 @@ export class Npmci {
projectId: 'gitzone',
appName: 'npmci',
});
}
public async start() {
this.cloudlyConnector = new CloudlyConnector(this);
this.npmciEnv = new NpmciEnv(this);
this.npmciInfo = new NpmciInfo(this);
await this.npmciInfo.printToConsole();
this.npmciCli = new NpmciCli(this);
this.npmciConfig = new NpmciConfig(this);
await this.npmciConfig.init();
// managers
this.cloudronManager = new NpmciCloudronManager(this);
@@ -51,11 +56,6 @@ export class Npmci {
this.gitManager = new NpmciGitManager(this);
this.nodejsManager = new NpmciNodeJsManager(this);
this.npmManager = new NpmciNpmManager(this);
}
public async start() {
await this.npmciInfo.printToConsole();
await this.npmciConfig.init();
this.npmciCli.startParse();
}
}

View File

@@ -44,10 +44,12 @@ export class NpmciConfig {
constructor(npmciRefArg: Npmci) {
this.npmciRef = npmciRefArg;
}
public async init() {
this.npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
this.kvStorage = new plugins.npmextra.KeyValueStore(
'custom',
'userHomeDir',
`${this.npmciRef.npmciEnv.repo.user}_${this.npmciRef.npmciEnv.repo.repo}`
);
this.npmciQenv = new plugins.qenv.Qenv(
@@ -65,11 +67,8 @@ export class NpmciConfig {
npmRegistryUrl: 'registry.npmjs.org',
gitlabRunnerTags: [],
dockerBuildargEnvMap: {},
urlCloudly: this.npmciQenv.getEnvVarOnDemand('NPMCI_URL_CLOUDLY'),
urlCloudly: await this.npmciQenv.getEnvVarOnDemand('NPMCI_URL_CLOUDLY'),
};
}
public async init() {
this.configObject = this.npmciNpmextra.dataFor<INpmciOptions>('npmci', this.configObject);
}

View File

@@ -11,7 +11,7 @@ export class NpmciInfo {
this.npmciRef = npmciArg;
}
public printToConsole() {
logger.log('info', `npmci version: ${this.projectInfo.version}`);
public async printToConsole() {
await logger.log('info', `npmci version: ${this.projectInfo.version}`);
}
}

View File

@@ -4,7 +4,7 @@ import * as path from 'path';
export { path };
// @apiglobal
import * as typedrequest from '@apiglobal/typedrequest';
import * as typedrequest from '@api.global/typedrequest';
export { typedrequest };