Compare commits

...

4 Commits

Author SHA1 Message Date
a58fa135c1 4.1.0 2022-10-24 21:23:14 +02:00
93c7af6c91 feat(precheck): now includes a precheck for more generic runner execution 2022-10-24 21:23:14 +02:00
ad0e12bf7b 4.0.11 2022-10-23 17:19:42 +02:00
498dd6eff6 fix(core): update 2022-10-23 17:19:41 +02:00
7 changed files with 38 additions and 7 deletions

View File

@@ -14,7 +14,7 @@ stages:
before_script: before_script:
- pnpm install -g pnpm - pnpm install -g pnpm
- pnpm install -g @shipzone/pnpm - pnpm install -g @shipzone/npmci
- npmci npm prepare - npmci npm prepare
# ==================== # ====================
@@ -32,6 +32,7 @@ auditProductionDependencies:
tags: tags:
- lossless - lossless
- docker - docker
allow_failure: true
auditDevDependencies: auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci image: registry.gitlab.com/hosttoday/ht-docker-node:npmci

View File

@@ -1,6 +1,6 @@
{ {
"name": "@shipzone/npmci", "name": "@shipzone/npmci",
"version": "4.0.10", "version": "4.1.0",
"private": false, "private": false,
"description": "node and docker in gitlab ci on steroids", "description": "node and docker in gitlab ci on steroids",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@shipzone/npmci', name: '@shipzone/npmci',
version: '4.0.10', version: '4.1.0',
description: 'node and docker in gitlab ci on steroids' description: 'node and docker in gitlab ci on steroids'
} }

24
ts/mod_precheck/index.ts Normal file
View File

@@ -0,0 +1,24 @@
import * as plugins from './plugins.js';
import * as paths from '../npmci.paths.js';
import { logger } from '../npmci.logging.js';
import { Npmci } from '../npmci.classes.npmci.js';
export const handleCli = async (npmciRefArg: Npmci, argvArg: any) => {
logger.log('info', 'checking execution context');
const presentRunnerTags = process.env.CI_RUNNER_TAGS.split(',').map((stringArg) =>
stringArg.trim()
);
let allDesiredGitlabRunnerTagsPresent = true;
for (const desiredRunnerTag of npmciRefArg.npmciConfig.getConfig().gitlabRunnerTags) {
if (!presentRunnerTags.includes(desiredRunnerTag)) {
allDesiredGitlabRunnerTagsPresent = false;
logger.log(
'error',
`Desired runnerRag ${desiredRunnerTag} is missing in current execution context.`
);
}
}
if (!allDesiredGitlabRunnerTagsPresent) {
process.exit(1);
}
};

View File

@@ -0,0 +1 @@
export * from '../npmci.plugins.js';

View File

@@ -79,15 +79,16 @@ export class NpmciCli {
} }
); );
this.smartcli.addCommand('precheck').subscribe(async (argvArg) => {
const modPrecheck = await import('./mod_precheck/index.js');
await modPrecheck.handleCli(this.npmciRef, argvArg);
})
// trigger // trigger
this.smartcli.addCommand('ssh').subscribe( this.smartcli.addCommand('ssh').subscribe(
async (argvArg) => { async (argvArg) => {
const modSsh = await import('./mod_ssh/index.js'); const modSsh = await import('./mod_ssh/index.js');
await modSsh.handleCli(argvArg); await modSsh.handleCli(argvArg);
},
(err) => {
console.log(err);
process.exit(1);
} }
); );

View File

@@ -20,6 +20,9 @@ export interface INpmciOptions {
dockerRegistryRepoMap: { [key: string]: string }; dockerRegistryRepoMap: { [key: string]: string };
dockerBuildargEnvMap: { [key: string]: string }; dockerBuildargEnvMap: { [key: string]: string };
// gitlab
gitlabRunnerTags: string[];
// urls // urls
urlCloudly: string; urlCloudly: string;
} }
@@ -57,6 +60,7 @@ export class NpmciConfig {
dockerRegistryRepoMap: {}, dockerRegistryRepoMap: {},
npmAccessLevel: 'private', npmAccessLevel: 'private',
npmRegistryUrl: 'registry.npmjs.org', npmRegistryUrl: 'registry.npmjs.org',
gitlabRunnerTags: [],
dockerBuildargEnvMap: {}, dockerBuildargEnvMap: {},
urlCloudly: this.npmciQenv.getEnvVarOnDemand('NPMCI_URL_CLOUDLY'), urlCloudly: this.npmciQenv.getEnvVarOnDemand('NPMCI_URL_CLOUDLY'),
}; };