jenkins-generator 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.dockerignore +8 -0
  2. package/DOCKER_COMPOSE_GUIDE.md +62 -0
  3. package/Dockerfile +23 -0
  4. package/README.md +65 -18
  5. package/dist/app.module.js +6 -0
  6. package/dist/app.module.js.map +1 -1
  7. package/dist/interfaces/config.interface.d.ts +11 -4
  8. package/dist/services/cicd-generator.service.d.ts +7 -1
  9. package/dist/services/cicd-generator.service.js +80 -18
  10. package/dist/services/cicd-generator.service.js.map +1 -1
  11. package/dist/services/cloud-provider.service.d.ts +1 -0
  12. package/dist/services/cloud-provider.service.js +135 -49
  13. package/dist/services/cloud-provider.service.js.map +1 -1
  14. package/dist/services/dashboard.service.d.ts +4 -0
  15. package/dist/services/dashboard.service.js +103 -0
  16. package/dist/services/dashboard.service.js.map +1 -0
  17. package/dist/services/docker-compose.service.d.ts +7 -0
  18. package/dist/services/docker-compose.service.js +113 -0
  19. package/dist/services/docker-compose.service.js.map +1 -0
  20. package/dist/services/iac.service.d.ts +8 -0
  21. package/dist/services/iac.service.js +164 -0
  22. package/dist/services/iac.service.js.map +1 -0
  23. package/dist/services/jenkinsfile.service.d.ts +1 -0
  24. package/dist/services/jenkinsfile.service.js +131 -33
  25. package/dist/services/jenkinsfile.service.js.map +1 -1
  26. package/dist/services/notification.service.js +13 -15
  27. package/dist/services/notification.service.js.map +1 -1
  28. package/dist/services/prompt.service.js +90 -18
  29. package/dist/services/prompt.service.js.map +1 -1
  30. package/dist/services/validation.service.js +1 -1
  31. package/dist/services/validation.service.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/docker-compose.yml +13 -0
  34. package/jest.config.js +12 -0
  35. package/package.json +8 -1
package/.dockerignore ADDED
@@ -0,0 +1,8 @@
1
+ node_modules
2
+ dist
3
+ .git
4
+ .cicd
5
+ *.log
6
+ .env
7
+ .env.*
8
+ .DS_Store
@@ -0,0 +1,62 @@
1
+ # Docker Compose Guide 🐳
2
+
3
+ This guide explains how to use the automatically generated `docker-compose.yml` file for local development and infrastructure testing.
4
+
5
+ ## Why Docker Compose?
6
+
7
+ When you configure external services (like databases, caches, or message queues) for your project, `jenkins-generator` creates a `docker-compose.yml` file in your project root. This allows you to:
8
+
9
+ 1. **Test Locally**: Spin up the exact same infrastructure your app needs on your local machine.
10
+ 2. **Validate Connections**: Ensure your app can connect to the services before deploying to Jenkins/Cloud.
11
+ 3. **Consistent Environments**: Every developer on your team can run the same setup with one command.
12
+
13
+ ## Getting Started
14
+
15
+ ### Prerequisites
16
+
17
+ - **Docker Desktop** (Mac/Windows) or **Docker Engine** (Linux)
18
+ - **Docker Compose** (V2 is recommended)
19
+
20
+ ### Usage
21
+
22
+ To start all services defined in your configuration:
23
+
24
+ ```bash
25
+ docker-compose up -d
26
+ ```
27
+
28
+ To stop and remove containers:
29
+
30
+ ```bash
31
+ docker-compose down
32
+ ```
33
+
34
+ ## Generated Configuration
35
+
36
+ The `docker-compose.yml` includes:
37
+
38
+ - **Your Application**: Built from your `Dockerfile`.
39
+ - **External Services**: Official images for databases (PostgreSQL, MongoDB, etc.) with default credentials.
40
+ - **Network**: All services are on the same bridge network for easy communication.
41
+ - **Volumes**: Persistent storage for databases where applicable.
42
+
43
+ ## Environment Variables
44
+
45
+ The generator also creates a `.env.template` file. To connect your app to the local Docker services:
46
+
47
+ 1. Copy `.env.template` to `.env`.
48
+ 2. The default values in `.env.template` are usually configured to match the `docker-compose.yml` defaults.
49
+
50
+ ## Troubleshooting
51
+
52
+ ### Port Conflicts
53
+
54
+ If you see an error like `Bind for 0.0.0.0:5432 failed: port is already allocated`, it means you have another service (like a local PostgreSQL) running on that port. Stop the local service or change the port in `docker-compose.yml`.
55
+
56
+ ### Connection Refused
57
+
58
+ Ensure all containers are running using `docker-compose ps`. If a service crashed, check logs with `docker-compose logs <service-name>`.
59
+
60
+ ---
61
+
62
+ _Generated by jenkins-generator_
package/Dockerfile ADDED
@@ -0,0 +1,23 @@
1
+ # Build stage
2
+ FROM node:20-slim AS builder
3
+
4
+ WORKDIR /app
5
+
6
+ COPY package*.json ./
7
+ RUN npm install
8
+
9
+ COPY . .
10
+ RUN npm run build
11
+
12
+ # Production stage
13
+ FROM node:20-slim
14
+
15
+ WORKDIR /app
16
+
17
+ COPY package*.json ./
18
+ RUN npm install --production
19
+
20
+ COPY --from=builder /app/dist ./dist
21
+
22
+ # The tool is interactive, so we need to run it in a way that allows shell interaction
23
+ ENTRYPOINT ["node", "dist/cli.js"]
package/README.md CHANGED
@@ -47,9 +47,10 @@ Never worry about CI/CD configuration again! This tool automatically generates p
47
47
  - **Microsoft Teams** - Adaptive cards
48
48
  - **Telegram** - Markdown formatted messages
49
49
 
50
- ### 🐳 Docker-Based Deployments
50
+ ### 🐳 Docker & Local Infrastructure
51
51
 
52
52
  - **Automated image building** from your Dockerfile
53
+ - **Docker Compose generation** for local infrastructure testing šŸ†•
53
54
  - **Registry push** to Docker Hub or private registry
54
55
  - **Container orchestration** on cloud platforms
55
56
  - **Health check verification**
@@ -65,8 +66,12 @@ Never worry about CI/CD configuration again! This tool automatically generates p
65
66
 
66
67
  ### šŸ“Š Advanced Features
67
68
 
68
- - **Auto-scaling configuration**
69
- - **Health check endpoints**
69
+ - **Infrastructure as Code (IaC)** - Automatic Terraform generation šŸ†•
70
+ - **Advanced Deployments** - Rolling, Blue-Green, and Canary strategies šŸ†•
71
+ - **Post-Deployment Dashboard** - Visual HTML summaries šŸ†•
72
+ - **Configuration Presets** - Save/Load configuration for speed šŸ†•
73
+ - **Health check endpoints** with retry logic
74
+ - **Load Balancer & stable DNS support**
70
75
  - **Deployment tier management** (dev/staging/production)
71
76
  - **Build retry logic**
72
77
  - **Comprehensive logging**
@@ -122,39 +127,60 @@ npm install --save-dev jenkins-generator
122
127
  - **Dockerfile** in your project (or we'll guide you)
123
128
  - **Jenkins** 2.0+ with required plugins
124
129
 
125
- ## šŸš€ Quick Start
130
+ ## šŸš€ Quick Start (Local)
126
131
 
127
- ### 1. Navigate to Your Project
132
+ 1. **Install Globably:**
128
133
 
129
134
  ```bash
130
- cd your-awesome-project
135
+ npm install -g jenkins-generator
131
136
  ```
132
137
 
133
- ### 2. Run the Generator
138
+ 2. **Run in your project root:**
134
139
 
135
140
  ```bash
136
141
  jenkins-generator
137
142
  ```
138
143
 
139
- ### 3. Answer Questions
144
+ ## 🐳 Usage with Docker
145
+
146
+ You can run the generator without installing Node.js by using our official Docker image.
147
+
148
+ ### Pulling the image
149
+
150
+ ```bash
151
+ docker pull your-dockerhub-username/jenkins-generator
152
+ ```
153
+
154
+ ### Running the container
155
+
156
+ To allow the generator to write files to your current directory, you must mount your project directory as a volume:
157
+
158
+ ```bash
159
+ docker run -it --rm -v $(pwd):/app your-dockerhub-username/jenkins-generator
160
+ ```
161
+
162
+ ---
163
+
164
+ ## šŸ› ļø Configuration Options
165
+
166
+ The generator will prompt you for:
140
167
 
141
- The CLI will ask you about:
168
+ - **Project Details**: Name, type (frontend/backend), language (JS/TS)
169
+ - **Git Info**: Repository URL and branch
170
+ - **Docker**: Dockerfile presence and path
171
+ - **External Services**: Databases, Caching, Storage, etc (NEW in v2.0!)
172
+ - **Cloud Provider**: AWS, Azure, GCP, or DigitalOcean
173
+ - **Deployment**: Instance types, regions, auto-scaling
174
+ - **Notifications**: Slack, Discord, Teams, Telegram, Email
142
175
 
143
- - Project details (name, type, language)
144
- - Git repository and branch
145
- - Docker configuration
146
- - Testing preferences
147
- - **External services** (databases, caching, storage, etc.) šŸ†•
148
- - Cloud provider selection
149
- - Deployment settings
150
- - Notification channels
151
- - Jenkins configuration
176
+ ---
152
177
 
153
178
  ### 4. Review Generated Files
154
179
 
155
180
  ```
156
181
  your-project/
157
182
  ā”œā”€ā”€ Jenkinsfile # šŸŽÆ Main pipeline with env vars
183
+ ā”œā”€ā”€ docker-compose.yml # 🐳 Local infrastructure testing šŸ†•
158
184
  ā”œā”€ā”€ .env.template # šŸ†• Template for local development
159
185
  ā”œā”€ā”€ .gitignore # šŸ†• Updated to exclude .env
160
186
  └── .cicd/
@@ -457,6 +483,27 @@ npm config get prefix
457
483
 
458
484
  For more troubleshooting, check the generated `.cicd/README.md` in your project.
459
485
 
486
+ ## šŸ†• What's New in v2.2.0
487
+
488
+ ### Major Features
489
+
490
+ - āœ… **Infrastructure as Code (IaC)** - Generate Terraform scripts for AWS, Azure, GCP, and DigitalOcean
491
+ - āœ… **Docker Compose Generation** - Automatic local infrastructure setup (versioned and validated) šŸ†•
492
+ - āœ… **OIDC Authentication** - Support for secure, token-based authentication (Web Identity Federation)
493
+ - āœ… **Deployment Strategies** - Integrated Rolling, Blue-Green, and Canary deployment support
494
+ - āœ… **Visual Dashboard** - Post-deployment HTML summary for quick status overview
495
+ - āœ… **Configuration Presets** - Save your answers to `jenkins-generator-config.json` for rapid re-runs
496
+ - āœ… **Improved Validation** - Robust Git URL and port validation suite
497
+
498
+ ## šŸ†• What's New in v2.1.0
499
+
500
+ ### Major Features
501
+
502
+ - āœ… **Load Balancer Integration** - Support for stable DNS URLs in deployment and health checks
503
+ - āœ… **Enhanced Health Checks** - Robust curl-based retries with dynamic URL extraction
504
+ - āœ… **Multi-Cloud Registry support** - Native integration with ECR, ACR, GCR, and DO Registry
505
+ - āœ… **Full Containerization** - Ready-to-use Docker image for easy distribution
506
+
460
507
  ## šŸ†• What's New in v2.0.0
461
508
 
462
509
  ### Major Features
@@ -16,6 +16,9 @@ const security_service_1 = require("./services/security.service");
16
16
  const validation_service_1 = require("./services/validation.service");
17
17
  const notification_service_1 = require("./services/notification.service");
18
18
  const environment_service_1 = require("./services/environment.service");
19
+ const iac_service_1 = require("./services/iac.service");
20
+ const dashboard_service_1 = require("./services/dashboard.service");
21
+ const docker_compose_service_1 = require("./services/docker-compose.service");
19
22
  let AppModule = class AppModule {
20
23
  };
21
24
  exports.AppModule = AppModule;
@@ -31,6 +34,9 @@ exports.AppModule = AppModule = __decorate([
31
34
  validation_service_1.ValidationService,
32
35
  notification_service_1.NotificationService,
33
36
  environment_service_1.EnvironmentService,
37
+ iac_service_1.IaCService,
38
+ dashboard_service_1.DashboardService,
39
+ docker_compose_service_1.DockerComposeService,
34
40
  ],
35
41
  })
36
42
  ], AppModule);
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8EAAyE;AACzE,8DAA0D;AAC1D,wEAAoE;AACpE,8EAAyE;AACzE,kEAA8D;AAC9D,sEAAkE;AAClE,0EAAsE;AACtE,wEAAoE;AAe7D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAbrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE;YACT,6CAAoB;YACpB,8BAAa;YACb,wCAAkB;YAClB,6CAAoB;YACpB,kCAAe;YACf,sCAAiB;YACjB,0CAAmB;YACnB,wCAAkB;SACnB;KACF,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8EAAyE;AACzE,8DAA0D;AAC1D,wEAAoE;AACpE,8EAAyE;AACzE,kEAA8D;AAC9D,sEAAkE;AAClE,0EAAsE;AACtE,wEAAoE;AACpE,wDAAoD;AACpD,oEAAgE;AAChE,8EAAyE;AAkBlE,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAhBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE;YACT,6CAAoB;YACpB,8BAAa;YACb,wCAAkB;YAClB,6CAAoB;YACpB,kCAAe;YACf,sCAAiB;YACjB,0CAAmB;YACnB,wCAAkB;YAClB,wBAAU;YACV,oCAAgB;YAChB,6CAAoB;SACrB;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -43,20 +43,24 @@ export interface EnvVariable {
43
43
  description: string;
44
44
  }
45
45
  export interface AWSCredentials {
46
- accessKeyId: string;
47
- secretAccessKey: string;
46
+ accessKeyId?: string;
47
+ secretAccessKey?: string;
48
48
  region: string;
49
+ useOIDC: boolean;
50
+ oidcRoleArn?: string;
49
51
  }
50
52
  export interface AzureCredentials {
51
53
  subscriptionId: string;
52
54
  clientId: string;
53
- clientSecret: string;
55
+ clientSecret?: string;
54
56
  tenantId: string;
57
+ useOIDC: boolean;
55
58
  }
56
59
  export interface GCPCredentials {
57
60
  projectId: string;
58
- keyFile: string;
61
+ keyFile?: string;
59
62
  region: string;
63
+ useOIDC: boolean;
60
64
  }
61
65
  export interface DOCredentials {
62
66
  apiToken: string;
@@ -69,6 +73,9 @@ export interface DeploymentConfig {
69
73
  maxInstances?: number;
70
74
  healthCheckPath: string;
71
75
  port: number;
76
+ useLoadBalancer: boolean;
77
+ loadBalancerUrl?: string;
78
+ deploymentStrategy: 'rolling' | 'blue-green' | 'canary';
72
79
  environmentVariables: {
73
80
  [key: string]: string;
74
81
  };
@@ -3,13 +3,19 @@ import { JenkinsFileService } from './jenkinsfile.service';
3
3
  import { SecurityService } from './security.service';
4
4
  import { ValidationService } from './validation.service';
5
5
  import { EnvironmentService } from './environment.service';
6
+ import { IaCService } from './iac.service';
7
+ import { DashboardService } from './dashboard.service';
8
+ import { DockerComposeService } from './docker-compose.service';
6
9
  export declare class CICDGeneratorService {
7
10
  private readonly promptService;
8
11
  private readonly jenkinsFileService;
9
12
  private readonly securityService;
10
13
  private readonly validationService;
11
14
  private readonly environmentService;
12
- constructor(promptService: PromptService, jenkinsFileService: JenkinsFileService, securityService: SecurityService, validationService: ValidationService, environmentService: EnvironmentService);
15
+ private readonly iacService;
16
+ private readonly dashboardService;
17
+ private readonly dockerComposeService;
18
+ constructor(promptService: PromptService, jenkinsFileService: JenkinsFileService, securityService: SecurityService, validationService: ValidationService, environmentService: EnvironmentService, iacService: IaCService, dashboardService: DashboardService, dockerComposeService: DockerComposeService);
13
19
  run(): Promise<void>;
14
20
  private writeFiles;
15
21
  private updateRootGitignore;
@@ -48,10 +48,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.CICDGeneratorService = void 0;
49
49
  const common_1 = require("@nestjs/common");
50
50
  const prompt_service_1 = require("./prompt.service");
51
+ const inquirer_1 = __importDefault(require("inquirer"));
51
52
  const jenkinsfile_service_1 = require("./jenkinsfile.service");
52
53
  const security_service_1 = require("./security.service");
53
54
  const validation_service_1 = require("./validation.service");
54
55
  const environment_service_1 = require("./environment.service");
56
+ const iac_service_1 = require("./iac.service");
57
+ const dashboard_service_1 = require("./dashboard.service");
58
+ const docker_compose_service_1 = require("./docker-compose.service");
55
59
  const fs = __importStar(require("fs-extra"));
56
60
  const path = __importStar(require("path"));
57
61
  const chalk_1 = __importDefault(require("chalk"));
@@ -62,12 +66,18 @@ let CICDGeneratorService = class CICDGeneratorService {
62
66
  securityService;
63
67
  validationService;
64
68
  environmentService;
65
- constructor(promptService, jenkinsFileService, securityService, validationService, environmentService) {
69
+ iacService;
70
+ dashboardService;
71
+ dockerComposeService;
72
+ constructor(promptService, jenkinsFileService, securityService, validationService, environmentService, iacService, dashboardService, dockerComposeService) {
66
73
  this.promptService = promptService;
67
74
  this.jenkinsFileService = jenkinsFileService;
68
75
  this.securityService = securityService;
69
76
  this.validationService = validationService;
70
77
  this.environmentService = environmentService;
78
+ this.iacService = iacService;
79
+ this.dashboardService = dashboardService;
80
+ this.dockerComposeService = dockerComposeService;
71
81
  }
72
82
  async run() {
73
83
  try {
@@ -83,7 +93,37 @@ let CICDGeneratorService = class CICDGeneratorService {
83
93
  throw error;
84
94
  }
85
95
  console.log(chalk_1.default.yellow('Please provide the following information:\n'));
86
- const config = await this.promptService.collectAllConfigurations();
96
+ const configPath = path.resolve(process.cwd(), 'jenkins-generator-config.json');
97
+ let config;
98
+ if (await fs.pathExists(configPath)) {
99
+ const loadConfig = await inquirer_1.default.prompt([
100
+ {
101
+ type: 'confirm',
102
+ name: 'usePreset',
103
+ message: 'Found existing jenkins-generator-config.json. Do you want to load it?',
104
+ default: true,
105
+ },
106
+ ]);
107
+ if (loadConfig.usePreset) {
108
+ config = await fs.readJSON(configPath);
109
+ console.log(chalk_1.default.green('Configuration loaded successfully!\n'));
110
+ }
111
+ }
112
+ if (!config) {
113
+ config = await this.promptService.collectAllConfigurations();
114
+ const saveConfig = await inquirer_1.default.prompt([
115
+ {
116
+ type: 'confirm',
117
+ name: 'savePreset',
118
+ message: 'Do you want to save this configuration as a preset (jenkins-generator-config.json)?',
119
+ default: true,
120
+ },
121
+ ]);
122
+ if (saveConfig.savePreset) {
123
+ await fs.writeJSON(configPath, config, { spaces: 2 });
124
+ console.log(chalk_1.default.green('Configuration saved to jenkins-generator-config.json\n'));
125
+ }
126
+ }
87
127
  const generatingSpinner = (0, ora_1.default)('Generating Jenkinsfile...').start();
88
128
  const jenkinsfile = this.jenkinsFileService.generateJenkinsfile(config);
89
129
  generatingSpinner.succeed('Jenkinsfile generated');
@@ -94,8 +134,18 @@ let CICDGeneratorService = class CICDGeneratorService {
94
134
  config.project.externalServices.length > 0) {
95
135
  envTemplate = this.environmentService.generateEnvFileTemplate(config.project.externalServices);
96
136
  }
137
+ const iacSpinner = (0, ora_1.default)('Generating Infrastructure as Code...').start();
138
+ const terraformConfig = this.iacService.generateTerraformConfig(config.cloud, config.project.projectName);
139
+ iacSpinner.succeed('Infrastructure as Code generated');
140
+ const dashboardSpinner = (0, ora_1.default)('Generating Deployment Dashboard...').start();
141
+ const dashboard = this.dashboardService.generateDeploymentDashboard(config);
142
+ dashboardSpinner.succeed('Deployment Dashboard generated');
143
+ let dockerCompose = '';
144
+ if (config.project.hasDockerfile) {
145
+ dockerCompose = this.dockerComposeService.generateDockerCompose(config);
146
+ }
97
147
  const writingSpinner = (0, ora_1.default)('Writing files...').start();
98
- await this.writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, config);
148
+ await this.writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, terraformConfig, dashboard, dockerCompose, config);
99
149
  writingSpinner.succeed('Files written successfully');
100
150
  this.displaySummary(config);
101
151
  }
@@ -104,32 +154,41 @@ let CICDGeneratorService = class CICDGeneratorService {
104
154
  throw error;
105
155
  }
106
156
  }
107
- async writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, config) {
108
- const rootDir = process.cwd();
109
- const cicdDir = path.join(rootDir, '.cicd');
157
+ async writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, terraformConfig, dashboardContent, dockerComposeContent, config) {
158
+ const projectDir = process.cwd();
159
+ const cicdDir = path.join(projectDir, '.cicd');
110
160
  await fs.ensureDir(cicdDir);
111
- const jenkinsfilePath = path.join(rootDir, 'Jenkinsfile');
161
+ const jenkinsfilePath = path.join(projectDir, 'Jenkinsfile');
112
162
  await fs.writeFile(jenkinsfilePath, jenkinsfile);
163
+ if (dockerComposeContent) {
164
+ await fs.writeFile(path.join(projectDir, 'docker-compose.yml'), dockerComposeContent);
165
+ }
113
166
  const credentialsPath = path.join(cicdDir, 'CREDENTIALS_SETUP.md');
114
167
  await fs.writeFile(credentialsPath, credentialsGuide);
115
168
  const readmePath = path.join(cicdDir, 'README.md');
116
169
  await fs.writeFile(readmePath, readme);
117
- if (envTemplate) {
118
- const envTemplatePath = path.join(rootDir, '.env.template');
119
- await fs.writeFile(envTemplatePath, envTemplate);
120
- console.log(chalk_1.default.green('\nšŸ“„ Generated .env.template for local development'));
121
- }
170
+ const envPath = path.join(projectDir, '.env.template');
171
+ await fs.writeFile(envPath, envTemplate);
172
+ const terraformDir = path.join(cicdDir, 'terraform');
173
+ await fs.ensureDir(terraformDir);
174
+ const terraformPath = path.join(terraformDir, 'main.tf');
175
+ await fs.writeFile(terraformPath, terraformConfig);
176
+ const dashboardPath = path.join(cicdDir, 'dashboard.html');
177
+ await fs.writeFile(dashboardPath, dashboardContent);
122
178
  const configPath = path.join(cicdDir, 'config.encrypted.json');
123
- const encryptedConfig = this.securityService.encryptCredentials(config);
124
- await fs.writeFile(configPath, JSON.stringify({ encrypted: encryptedConfig }, null, 2));
125
- const gitignorePath = path.join(cicdDir, '.gitignore');
126
- await fs.writeFile(gitignorePath, 'config.encrypted.json\n*.log\n');
127
- await this.updateRootGitignore(rootDir);
179
+ const encrypted = this.securityService.encryptCredentials(config);
180
+ await fs.writeFile(configPath, encrypted);
181
+ await this.updateRootGitignore(projectDir);
128
182
  console.log(chalk_1.default.green('\nšŸ“ Generated files:'));
129
183
  console.log(chalk_1.default.gray(` ā”œā”€ Jenkinsfile (${jenkinsfilePath})`));
184
+ if (dockerComposeContent) {
185
+ console.log(chalk_1.default.gray(` ā”œā”€ docker-compose.yml`));
186
+ }
130
187
  if (envTemplate) {
131
188
  console.log(chalk_1.default.gray(` ā”œā”€ .env.template (for local development)`));
132
189
  }
190
+ console.log(chalk_1.default.gray(` ā”œā”€ .cicd/terraform/main.tf`));
191
+ console.log(chalk_1.default.gray(` ā”œā”€ .cicd/dashboard.html`));
133
192
  console.log(chalk_1.default.gray(` ā”œā”€ .cicd/CREDENTIALS_SETUP.md`));
134
193
  console.log(chalk_1.default.gray(` ā”œā”€ .cicd/README.md`));
135
194
  console.log(chalk_1.default.gray(` └─ .cicd/config.encrypted.json`));
@@ -222,6 +281,9 @@ exports.CICDGeneratorService = CICDGeneratorService = __decorate([
222
281
  jenkinsfile_service_1.JenkinsFileService,
223
282
  security_service_1.SecurityService,
224
283
  validation_service_1.ValidationService,
225
- environment_service_1.EnvironmentService])
284
+ environment_service_1.EnvironmentService,
285
+ iac_service_1.IaCService,
286
+ dashboard_service_1.DashboardService,
287
+ docker_compose_service_1.DockerComposeService])
226
288
  ], CICDGeneratorService);
227
289
  //# sourceMappingURL=cicd-generator.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cicd-generator.service.js","sourceRoot":"","sources":["../../src/services/cicd-generator.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cicd-generator.service.js","sourceRoot":"","sources":["../../src/services/cicd-generator.service.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export declare class CloudProviderService {
6
6
  generateDigitalOceanDeploymentScript(config: CloudConfig, dockerImageName: string): string;
7
7
  generateDeploymentScript(config: CloudConfig, dockerImageName: string): string;
8
8
  generateCredentialsEnvironmentVariables(config: CloudConfig): string;
9
+ private generateDeployedUrlExport;
9
10
  }