Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b3aa964739 | |||
| 03eb9d2657 | |||
| 373a838a6a | |||
| 960e3f4675 | |||
| 09bf676b58 | |||
| 76ba8e2ab9 | |||
| aaaaca2d19 | |||
| 71b27eda17 | |||
| 2d00882fd7 | |||
| ba5e69041f | |||
| d2871d601a | |||
| 9c66d88dc0 | |||
| fb4c84e1de | |||
| 57aca36f11 | |||
| 905f594af1 | |||
| b788b7f96b | |||
| 319a2dc41a | |||
| e01a998f0e | |||
| e40606d97b | |||
| 449c7b2c04 |
@@ -13,43 +13,34 @@ stages:
|
||||
- metadata
|
||||
|
||||
before_script:
|
||||
- npm install -g @shipzone/npmci
|
||||
- pnpm install -g pnpm
|
||||
- pnpm install -g @shipzone/pnpm
|
||||
- npmci npm prepare
|
||||
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
mirror:
|
||||
stage: security
|
||||
script:
|
||||
- npmci git mirror
|
||||
only:
|
||||
- tags
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
auditProductionDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --production --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=prod --production
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command pnpm audit --audit-level=high --prod
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=dev
|
||||
- npmci command pnpm audit --audit-level=high --dev
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
@@ -60,7 +51,6 @@ auditDevDependencies:
|
||||
testStable:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
@@ -71,7 +61,6 @@ testStable:
|
||||
testBuild:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command npm run build
|
||||
@@ -100,10 +89,9 @@ codequality:
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- npmci command npm install -g tslint typescript
|
||||
- npmci command npm install -g typescript
|
||||
- npmci npm prepare
|
||||
- npmci npm install
|
||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
@@ -123,11 +111,9 @@ trigger:
|
||||
pages:
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci node install lts
|
||||
- npmci command npm install -g @gitzone/tsdoc
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command tsdoc
|
||||
- npmci command npm run buildDocs
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
|
||||
21
license
Normal file
21
license
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Lossless GmbH
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -14,7 +14,7 @@
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "shipzone",
|
||||
"gitrepo": "npmci",
|
||||
"shortDescription": "node and docker in gitlab ci on steroids",
|
||||
"description": "node and docker in gitlab ci on steroids",
|
||||
"npmPackagename": "@shipzone/npmci",
|
||||
"license": "MIT"
|
||||
}
|
||||
|
||||
14352
package-lock.json
generated
14352
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@shipzone/npmci",
|
||||
"version": "4.0.0",
|
||||
"version": "4.0.10",
|
||||
"private": false,
|
||||
"description": "node and docker in gitlab ci on steroids",
|
||||
"main": "dist_ts/index.js",
|
||||
@@ -12,7 +12,8 @@
|
||||
"scripts": {
|
||||
"test": "tstest test/",
|
||||
"build": "tsbuild --allowimplicitany && (npm run testVersion)",
|
||||
"testVersion": "(cd test/assets/ && node ../../cli.js -v)"
|
||||
"testVersion": "(cd test/assets/ && node ../../cli.js -v)",
|
||||
"buildDocs": "tsdoc"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -29,9 +30,7 @@
|
||||
"@gitzone/tsrun": "^1.2.37",
|
||||
"@gitzone/tstest": "^1.0.73",
|
||||
"@pushrocks/tapbundle": "^5.0.4",
|
||||
"@types/node": "^18.8.3",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
"@types/node": "^18.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apiglobal/typedrequest": "^2.0.10",
|
||||
@@ -42,6 +41,7 @@
|
||||
"@pushrocks/smartanalytics": "^2.0.15",
|
||||
"@pushrocks/smartcli": "^4.0.6",
|
||||
"@pushrocks/smartdelay": "^2.0.13",
|
||||
"@pushrocks/smartenv": "^5.0.3",
|
||||
"@pushrocks/smartfile": "^10.0.5",
|
||||
"@pushrocks/smartgit": "^3.0.0",
|
||||
"@pushrocks/smartlog": "^3.0.1",
|
||||
@@ -52,7 +52,7 @@
|
||||
"@pushrocks/smartrequest": "^2.0.11",
|
||||
"@pushrocks/smartshell": "^2.0.30",
|
||||
"@pushrocks/smartsocket": "^2.0.7",
|
||||
"@pushrocks/smartssh": "^1.2.3",
|
||||
"@pushrocks/smartssh": "^2.0.0",
|
||||
"@pushrocks/smartstring": "^4.0.5",
|
||||
"@servezone/interfaces": "^1.0.3",
|
||||
"@tsclass/tsclass": "^4.0.21",
|
||||
|
||||
4360
pnpm-lock.yaml
generated
Normal file
4360
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,23 +1,26 @@
|
||||
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = '0';
|
||||
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
|
||||
import { tap, expect } from '@pushrocks/tapbundle';
|
||||
|
||||
import * as cloudlyConnectorMod from '../ts/connector.cloudly/cloudlyconnector.js';
|
||||
|
||||
tap.test('should be able to announce a container to cloudly', async () => {
|
||||
const cloudlyConnector = new cloudlyConnectorMod.CloudlyConnector(null);
|
||||
await cloudlyConnector.announceDockerContainer({
|
||||
registryUrl: 'registry.losssless.com',
|
||||
tag: 'testcontainer',
|
||||
version: 'x.x.x',
|
||||
labels: []
|
||||
}, 'cloudly.lossless.one')
|
||||
await cloudlyConnector.announceDockerContainer(
|
||||
{
|
||||
registryUrl: 'registry.losssless.com',
|
||||
tag: 'testcontainer',
|
||||
version: 'x.x.x',
|
||||
labels: [],
|
||||
},
|
||||
'cloudly.lossless.one'
|
||||
);
|
||||
});
|
||||
|
||||
tap.test('should close the program despite socket timeout', async (toolsArg) => {
|
||||
// TODO: remove when unreffed timeouts in webrequest have been solved.
|
||||
toolsArg.delayFor(0).then(() => {
|
||||
process.exit();
|
||||
})
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
tap.start();
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path';
|
||||
import * as smartpath from '@pushrocks/smartpath';
|
||||
|
||||
process.env.NPMTS_TEST = 'true';
|
||||
process.env.NPMCI_URL_CLOUDLY = 'localhost'
|
||||
process.env.NPMCI_URL_CLOUDLY = 'localhost';
|
||||
|
||||
// set up environment
|
||||
process.env.CI_REPOSITORY_URL = 'https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git';
|
||||
@@ -23,7 +23,7 @@ let npmci: typeof import('../ts/index.js');
|
||||
|
||||
tap.preTask('should import npmci', async () => {
|
||||
npmci = await import('../ts/index.js');
|
||||
})
|
||||
});
|
||||
|
||||
// ======
|
||||
// Docker
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@shipzone/npmci',
|
||||
version: '4.0.0',
|
||||
version: '4.0.10',
|
||||
description: 'node and docker in gitlab ci on steroids'
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ export class CloudlyConnector {
|
||||
);
|
||||
|
||||
const response = await typedrequest.fire({
|
||||
containerImageInfo: optionsArg
|
||||
containerImageInfo: optionsArg,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,8 +276,7 @@ export class Dockerfile {
|
||||
registryUrl: this.pushTag,
|
||||
tag: this.buildTag,
|
||||
labels: [],
|
||||
version:
|
||||
this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version,
|
||||
version: this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -44,11 +44,11 @@ export class NpmciNodeJsManager {
|
||||
logger.log('info', `now installing node version ${versionArg}`);
|
||||
let version: string;
|
||||
if (versionArg === 'stable') {
|
||||
version = '16';
|
||||
version = '18';
|
||||
} else if (versionArg === 'lts') {
|
||||
version = '14';
|
||||
version = '16';
|
||||
} else if (versionArg === 'legacy') {
|
||||
version = '12';
|
||||
version = '14';
|
||||
} else {
|
||||
version = versionArg;
|
||||
}
|
||||
|
||||
@@ -151,6 +151,7 @@ export class NpmciNpmManager {
|
||||
logger.log('info', `now preparing environment:`);
|
||||
this.prepare();
|
||||
await bash(`npm -v`);
|
||||
await bash(`pnpm -v`);
|
||||
|
||||
// -> build it
|
||||
await this.install();
|
||||
@@ -172,16 +173,16 @@ export class NpmciNpmManager {
|
||||
|
||||
public async install(): Promise<void> {
|
||||
logger.log('info', 'now installing dependencies:');
|
||||
await bash('npm ci');
|
||||
await bash('pnpm install');
|
||||
}
|
||||
|
||||
public async build(): Promise<void> {
|
||||
logger.log('info', 'now building the project:');
|
||||
await bash('npm run build');
|
||||
await bash('pnpm run build');
|
||||
}
|
||||
|
||||
public async test(): Promise<void> {
|
||||
logger.log('info', 'now starting tests:');
|
||||
await bash('npm test');
|
||||
await bash('pnpm test');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,10 @@ import * as plugins from './npmci.plugins.js';
|
||||
export const cwd = process.cwd();
|
||||
|
||||
// package paths
|
||||
export const NpmciPackageRoot = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
||||
export const NpmciPackageRoot = plugins.path.join(
|
||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||
'../'
|
||||
);
|
||||
export const NpmciPackageConfig = plugins.path.join(NpmciPackageRoot, './config.json');
|
||||
|
||||
// project paths
|
||||
|
||||
@@ -57,9 +57,7 @@ export {
|
||||
// @tsclass scope
|
||||
import * as tsclass from '@tsclass/tsclass';
|
||||
|
||||
export {
|
||||
tsclass
|
||||
}
|
||||
export { tsclass };
|
||||
|
||||
// third party
|
||||
import * as through2 from 'through2';
|
||||
|
||||
Reference in New Issue
Block a user