Compare commits

...

5 Commits

Author SHA1 Message Date
c9378e6cae Added test pipeline for automatic license export
All checks were successful
continuous-integration/drone/push Build is passing
ref #59
2020-12-30 21:13:32 +01:00
62c7f26540 Added --full option for the license exporter to export the license path and text as well
ref #59
2020-12-30 21:05:16 +01:00
18e3ef9a79 Added automatic license export on dev push/merge
ref #59
2020-12-30 20:40:28 +01:00
395b0101a8 Moved package script related files to their own folder
ref #59
2020-12-30 20:22:18 +01:00
84a0bd2cd9 Added license exporter (to json)
ref #59
2020-12-30 20:18:28 +01:00
4 changed files with 105 additions and 10 deletions

View File

@ -37,11 +37,22 @@ steps:
tags: tags:
- dev - dev
registry: registry.odit.services registry: registry.odit.services
when: - name: run full license export
branch: image: node:alpine
- dev depends_on: [clone]
event: commands:
- push - yarn
- yarn licenses:full
- name: push new licenses file to repo
image: appleboy/drone-git-push
settings:
branch: dev
commit: true
commit_message: new license file version [CI SKIP]
author_email: bot@odit.services
remote: git@git.odit.services:lfk/backend.git
ssh_key:
from_secret: GITLAB_SSHKEY
trigger: trigger:
branch: branch:
@ -106,4 +117,27 @@ steps:
from_secret: BOT_DRONE_KEY from_secret: BOT_DRONE_KEY
trigger: trigger:
event: event:
- tag - tag
---
kind: pipeline
type: docker
name: export:licenses
steps:
- name: run full license export
image: node:alpine
depends_on: [clone]
commands:
- yarn
- yarn licenses:full
- name: push new licenses file to repo
image: appleboy/drone-git-push
settings:
branch: dev
commit: true
commit_message: new license file version [CI SKIP]
author_email: bot@odit.services
remote: git@git.odit.services:lfk/backend.git
ssh_key:
from_secret: GITLAB_SSHKEY

View File

@ -59,6 +59,7 @@
"cp-cli": "^2.0.0", "cp-cli": "^2.0.0",
"jest": "^26.6.3", "jest": "^26.6.3",
"nodemon": "^2.0.6", "nodemon": "^2.0.6",
"license-checker": "^25.0.1",
"rimraf": "^2.7.1", "rimraf": "^2.7.1",
"start-server-and-test": "^1.11.6", "start-server-and-test": "^1.11.6",
"ts-jest": "^26.4.4", "ts-jest": "^26.4.4",
@ -74,7 +75,9 @@
"test:watch": "jest --watchAll", "test:watch": "jest --watchAll",
"test:ci": "start-server-and-test dev http://localhost:4010/api/docs/openapi.json test", "test:ci": "start-server-and-test dev http://localhost:4010/api/docs/openapi.json test",
"seed": "ts-node ./node_modules/typeorm/cli.js schema:sync && ts-node ./node_modules/typeorm-seeding/dist/cli.js seed", "seed": "ts-node ./node_modules/typeorm/cli.js schema:sync && ts-node ./node_modules/typeorm-seeding/dist/cli.js seed",
"openapi:export": "ts-node src/openapi_export.ts" "openapi:export": "node scripts/openapi_export.js",
"licenses:export": "node scripts/license_exporter.js",
"licenses:full": "node scripts/license_exporter.js --full"
}, },
"nodemonConfig": { "nodemonConfig": {
"ignore": [ "ignore": [

View File

@ -0,0 +1,58 @@
var checker = require('license-checker');
var consola = require('consola');
var fs = require('fs');
var args = process.argv.slice(2);
checker.init({
start: './',
relativeLicensePath: true,
customFormat: {
licenseText: "",
licenseFile: "",
description: "",
version: "",
}
}, function (err, packages) {
if (err) {
consola.error("Couldn't load the licenses.")
} else {
let licenses = new Array();
if (args.includes("--full")) {
Object.keys(packages).forEach(function (key) {
licenses.push({
"name": packages[key].name,
"licenses": packages[key].licenses,
"repository": packages[key].repository || null,
"publisher": packages[key].publisher || null,
"email": packages[key].email || null,
"version": packages[key].version || null,
"description": packages[key].description || null,
"copyright": packages[key].copyright || null,
"text": packages[key].licenseText || null,
"license_path": packages[key].licenseFile || null,
});
});
}
else {
Object.keys(packages).forEach(function (key) {
licenses.push({
"name": packages[key].name,
"licenses": packages[key].licenses,
"repository": packages[key].repository || null,
"publisher": packages[key].publisher || null,
"email": packages[key].email || null,
"version": packages[key].version || null,
"description": packages[key].description || null,
"copyright": packages[key].copyright || null,
});
});
}
try {
fs.writeFileSync("./licenses.json", JSON.stringify(licenses), { encoding: "utf-8" });
consola.success("Exported licenses to ./licenses.json");
} catch (error) {
consola.error("Couldn't export the licenses");
}
}
});

View File

@ -4,9 +4,9 @@ import fs from "fs";
import "reflect-metadata"; import "reflect-metadata";
import { createExpressServer, getMetadataArgsStorage } from "routing-controllers"; import { createExpressServer, getMetadataArgsStorage } from "routing-controllers";
import { routingControllersToSpec } from 'routing-controllers-openapi'; import { routingControllersToSpec } from 'routing-controllers-openapi';
import { config } from './config'; import { config } from '../src/config';
import authchecker from "./middlewares/authchecker"; import authchecker from "../src/middlewares/authchecker";
import { ErrorHandler } from './middlewares/ErrorHandler'; import { ErrorHandler } from '../src/middlewares/ErrorHandler';
const CONTROLLERS_FILE_EXTENSION = process.env.NODE_ENV === 'production' ? 'js' : 'ts'; const CONTROLLERS_FILE_EXTENSION = process.env.NODE_ENV === 'production' ? 'js' : 'ts';
createExpressServer({ createExpressServer({