/* * Copyright (C) SapphireCode - All Rights Reserved * This file is part of Snippeteer which is released under BSD-3-Clause. * See file 'LICENSE' for full license details. * Created by Timo Hocker , April 2020 */ import { Confirm } from 'enquirer'; import { Snippet } from '../../Snippet'; import { apply_template, modify_json } from '../../Helper'; import node_js from './template/node/jenkins.js.asset'; import node_jenkinsfile from './template/node/Jenkinsfile.asset'; import general_jenkinsfile from './template/general/Jenkinsfile.asset'; export class Jenkins implements Snippet { public async start (): Promise { const is_node = await new Confirm ({ message: 'is the current project using nodejs?', initial: true }) .run (); if (is_node) { await apply_template (node_js, 'jenkins.js'); await apply_template (node_jenkinsfile, 'Jenkinsfile'); // eslint-disable-next-line @typescript-eslint/no-explicit-any await modify_json ((obj: any): any => { obj.scripts.ci = 'yarn && node jenkins.js'; return obj; }); } else { await apply_template (general_jenkinsfile, 'Jenkinsfile'); } } }