UNPKG

singularci

Version:

SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms

46 lines (37 loc) 1.43 kB
#!/usr/bin/env node import 'reflect-metadata'; import Container, { Inject, Service } from 'typedi'; import { TargetPlatformGenerator } from '../Targets/interfaces/TargetPlatformGenerator'; import { GitLabConfigGenerator } from '../Targets/GitLabModule'; import { GitHubConfigGenerator } from './../Targets/GitHubModule/index'; import fs from 'fs'; import Pipeline from '../SemanticModel/Pipeline'; import { BuildDockerImageFactory } from '../SemanticModel/Tasks/BuildDockerImage'; import { TriggerFactory } from './../SemanticModel/Trigger'; Container.import([ GitHubConfigGenerator, GitLabConfigGenerator, Pipeline, BuildDockerImageFactory, TriggerFactory ]); @Service({ id: 'program' }) class Program { private configGenerators: TargetPlatformGenerator[] = []; constructor( @Inject('GitHubConfigGenerator') githubConfigGenerator: TargetPlatformGenerator, @Inject('GitLabConfigGenerator') gitlabConfigGenerator: TargetPlatformGenerator, ) { this.configGenerators.push(githubConfigGenerator); this.configGenerators.push(gitlabConfigGenerator); } public main = () => { for (const configGenerator of this.configGenerators) { configGenerator.generateConfig() } } } Container.set('dslparser.inputFileName', '.singularci.yml'); const program = Container.get<Program>('program'); program.main(); fs.rmSync('.singularci-copy.yml');