@quadnix/octo-build 0.0.16 → 0.0.17

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.
@@ -84,12 +84,7 @@ export default class extends Generator {
84
84
  // Create src directory and main files
85
85
  if (this.appTemplate === 'aws-ecs-server') {
86
86
  const templatePath = `src/${this.appTemplate}`;
87
- this.fs.copyTpl(this.templatePath(`${templatePath}/app.config.ts.ejs`), this.destinationPath('src/app.config.ts'));
88
- this.fs.copyTpl(this.templatePath(`${templatePath}/env.ejs`), this.destinationPath('.env'));
89
- this.fs.copyTpl(this.templatePath(`${templatePath}/main.ts.ejs`), this.destinationPath('src/main.ts'), {
90
- name: this.appName,
91
- });
92
- this.fs.copyTpl(this.templatePath(`${templatePath}/module-definitions.ts.ejs`), this.destinationPath('src/module-definitions.ts'));
87
+ this.fs.copyTpl(this.templatePath(`${templatePath}/octo.yaml.ejs`), this.destinationPath('octo.yaml'));
93
88
  }
94
89
  else if (this.appTemplate === 'aws-s3-website') {
95
90
  const templatePath = `src/${this.appTemplate}`;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/create-app/generator-octo-app-template/generators/app/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/create-app/generator-octo-app-template/generators/app/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/quadnix/octo/refs/heads/main/packages/octo-build/src/resources/octo-v1.schema.json
2
+
3
+ version: 1
4
+
5
+ env:
6
+ - key: AWS_ACCOUNT_ID
7
+ kind: string
8
+ value: "123456789123"
9
+
10
+ settings:
11
+ listeners:
12
+ - type: HtmlReportEventListener
13
+ - type: LoggingEventListener
14
+
15
+ stateProvider:
16
+ type: LocalStateProvider
17
+ statePath: .octo
18
+
19
+ imports:
20
+ - className: SimpleAppModule
21
+ importPath: "@quadnix/octo-aws-cdk/modules/app/simple-app"
22
+ - className: AwsIniAccountModule
23
+ importPath: "@quadnix/octo-aws-cdk/modules/account/aws-ini-account"
24
+ - className: AwsEcsDeploymentModule
25
+ importPath: "@quadnix/octo-aws-cdk/modules/deployment/aws-ecs-deployment"
26
+ - className: AwsEcsEnvironmentModule
27
+ importPath: "@quadnix/octo-aws-cdk/modules/environment/aws-ecs-environment"
28
+ - className: AwsEcsExecutionModule
29
+ importPath: "@quadnix/octo-aws-cdk/modules/execution/aws-ecs-execution"
30
+ - className: AwsMultiAzRegionModule
31
+ importPath: "@quadnix/octo-aws-cdk/modules/region/aws-multi-az-region"
32
+ - className: AwsEcsServerModule
33
+ importPath: "@quadnix/octo-aws-cdk/modules/server/aws-ecs-server"
34
+ - className: AwsEcsAlbServiceModule
35
+ importPath: "@quadnix/octo-aws-cdk/modules/service/aws-ecs-alb-service"
36
+ - className: AwsSimpleSubnetModule
37
+ importPath: "@quadnix/octo-aws-cdk/modules/subnet/aws-simple-subnet"
38
+
39
+ modules:
40
+ - moduleId: app-module
41
+ moduleClass: SimpleAppModule
42
+ moduleInputs:
43
+ name: aws-ecs-server
44
+
45
+ - moduleId: account-module
46
+ moduleClass: AwsIniAccountModule
47
+ moduleInputs:
48
+ accountId: "${env.AWS_ACCOUNT_ID}"
49
+ app: "${{app-module.model.app}}"
50
+
51
+ - moduleId: region-module
52
+ moduleClass: AwsMultiAzRegionModule
53
+ moduleInputs:
54
+ account: "${{account-module.model.account}}"
55
+ name: app-region-east
56
+ regionIds:
57
+ - aws-us-east-1a
58
+ - aws-us-east-1b
59
+ vpcCidrBlock: 10.0.0.0/16
60
+
61
+ - moduleId: backend-server-module
62
+ moduleClass: AwsEcsServerModule
63
+ moduleInputs:
64
+ account: "${{account-module.model.account}}"
65
+ serverKey: backend
66
+
67
+ - moduleId: backend-deployment-v1-module
68
+ moduleClass: AwsEcsDeploymentModule
69
+ moduleInputs:
70
+ deploymentContainerProperties:
71
+ cpu: 256
72
+ image:
73
+ command: node webserver
74
+ ports:
75
+ - containerPort: 80
76
+ protocol: tcp
77
+ uri: docker.io/ealen/echo-server:0.9.2
78
+ memory: 512
79
+ deploymentTag: v1
80
+ server: "${{backend-server-module.model.server}}"
81
+
82
+ - moduleId: qa-environment-module
83
+ moduleClass: AwsEcsEnvironmentModule
84
+ moduleInputs:
85
+ environmentName: qa
86
+ environmentVariables:
87
+ NODE_ENV: qa
88
+ region: "${{region-module.model.region}}"
89
+
90
+ - moduleId: public-subnet-module
91
+ moduleClass: AwsSimpleSubnetModule
92
+ moduleInputs:
93
+ region: "${{region-module.model.region}}"
94
+ subnetAvailabilityZone: us-east-1a
95
+ subnetCidrBlock: 10.0.0.0/24
96
+ subnetName: public-subnet
97
+ subnetOptions:
98
+ createNatGateway: true
99
+ disableSubnetIntraNetwork: false
100
+ subnetType: public
101
+
102
+ - moduleId: public-backup-subnet-module
103
+ moduleClass: AwsSimpleSubnetModule
104
+ moduleInputs:
105
+ region: "${{region-module.model.region}}"
106
+ subnetAvailabilityZone: us-east-1b
107
+ subnetCidrBlock: 10.0.1.0/24
108
+ subnetName: public-backup-subnet
109
+ subnetOptions:
110
+ createNatGateway: false
111
+ disableSubnetIntraNetwork: false
112
+ subnetType: public
113
+
114
+ - moduleId: private-subnet-module
115
+ moduleClass: AwsSimpleSubnetModule
116
+ moduleInputs:
117
+ region: "${{region-module.model.region}}"
118
+ subnetAvailabilityZone: us-east-1a
119
+ subnetCidrBlock: 10.0.2.0/24
120
+ subnetName: private-subnet
121
+ subnetOptions:
122
+ createNatGateway: false
123
+ disableSubnetIntraNetwork: true
124
+ subnetType: private
125
+ subnetSiblings:
126
+ - attachToNatGateway: true
127
+ subnet: "${{public-subnet-module.model.subnet}}"
128
+ - attachToNatGateway: false
129
+ subnet: "${{public-backup-subnet-module.model.subnet}}"
130
+
131
+ - moduleId: backend-v1-qa-execution-module
132
+ moduleClass: AwsEcsExecutionModule
133
+ moduleInputs:
134
+ deployments:
135
+ main:
136
+ containerProperties:
137
+ image:
138
+ essential: true
139
+ name: backend-v1
140
+ deployment: "${{backend-deployment-v1-module.model.deployment}}"
141
+ sidecars: []
142
+ desiredCount: 1
143
+ environment: "${{qa-environment-module.model.environment}}"
144
+ executionId: backend-v1-qa-execution
145
+ securityGroupRules:
146
+ - CidrBlock: 0.0.0.0/0
147
+ Egress: false
148
+ FromPort: 80
149
+ IpProtocol: tcp
150
+ ToPort: 80
151
+ subnet: "${{private-subnet-module.model.subnet}}"
152
+
153
+ - moduleId: qa-api-alb-module
154
+ moduleClass: AwsEcsAlbServiceModule
155
+ moduleInputs:
156
+ albName: qa-api-alb
157
+ listeners:
158
+ - DefaultActions:
159
+ - action:
160
+ TargetGroups:
161
+ - targetGroupName: backend-v1-80
162
+ Weight: 100
163
+ actionType: forward
164
+ Port: 80
165
+ rules: []
166
+ region: "${{region-module.model.region}}"
167
+ subnets:
168
+ - "${{public-subnet-module.model.subnet}}"
169
+ - "${{public-backup-subnet-module.model.subnet}}"
170
+ targets:
171
+ - containerName: backend-v1
172
+ containerPort: 80
173
+ execution: "${{backend-v1-qa-execution-module.model.execution}}"
174
+ healthCheck:
175
+ HealthCheckIntervalSeconds: 30
176
+ HealthCheckPath: /
177
+ HealthCheckPort: 80
178
+ HealthCheckProtocol: HTTP
179
+ HealthCheckTimeoutSeconds: 5
180
+ HealthyThresholdCount: 2
181
+ Matcher:
182
+ HttpCode: 200
183
+ UnhealthyThresholdCount: 2
184
+ Name: backend-v1-80
@@ -72,9 +72,22 @@ export const runCommand = {
72
72
  }
73
73
  }
74
74
  catch (error) {
75
- console.log(chalk.red(error.message));
76
- for (const failure of error.failures || []) {
77
- console.log(chalk.red(failure));
75
+ // Print errors.
76
+ console.log(chalk.red(error.stack));
77
+ for (const errorProperty of Object.getOwnPropertyNames(error) || []) {
78
+ if (errorProperty !== 'message' && errorProperty !== 'stack') {
79
+ console.log(chalk.red(`${errorProperty}: ${error[errorProperty]}`));
80
+ }
81
+ }
82
+ // Print YAML failures.
83
+ const failures = error.failures || [];
84
+ if (failures.length > 0) {
85
+ console.log('\n');
86
+ console.log(chalk.red('FAILURES'));
87
+ console.log(chalk.red('========'));
88
+ }
89
+ for (let i = 0; i < failures.length; i++) {
90
+ console.log(chalk.red(`${i + 1}. ${failures[i]}`));
78
91
  }
79
92
  process.exit(1);
80
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.command.js","sourceRoot":"","sources":["../../../src/commands/run/run.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.command.js","sourceRoot":"","sources":["../../../src/commands/run/run.command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,8 +6,8 @@
6
6
  "url": "https://github.com/quadnix/octo/issues"
7
7
  },
8
8
  "dependencies": {
9
- "@quadnix/octo": "~0.0.29",
10
- "@quadnix/octo-event-listeners": "~0.0.8",
9
+ "@quadnix/octo": "~0.0.30",
10
+ "@quadnix/octo-event-listeners": "~0.0.9",
11
11
  "ajv": "~8.17.1",
12
12
  "chalk": "~5.5.0",
13
13
  "js-yaml": "~4.1.0",
@@ -93,5 +93,5 @@
93
93
  },
94
94
  "type": "module",
95
95
  "types": "./dist/index.d.ts",
96
- "version": "0.0.16"
96
+ "version": "0.0.17"
97
97
  }
@@ -1,23 +0,0 @@
1
- import { dirname } from 'path';
2
- import { fileURLToPath } from 'url';
3
- import env from 'env-smart';
4
-
5
- const __dirname = dirname(fileURLToPath(import.meta.url));
6
-
7
- env.load({
8
- directory: __dirname,
9
- envDefaultsFilename: '.env.defaults',
10
- envFilename: '.env',
11
- inlineTypes: false,
12
- process: true,
13
- });
14
-
15
- type Configuration = {
16
- AWS_ACCOUNT_ID: string;
17
- };
18
-
19
- export const config = env.config<Configuration>((env) => {
20
- return {
21
- AWS_ACCOUNT_ID: env.AWS_ACCOUNT_ID,
22
- };
23
- });
@@ -1,2 +0,0 @@
1
- # Fix me: AWS account ID.
2
- AWS_ACCOUNT_ID=123456789123
@@ -1,24 +0,0 @@
1
- import { dirname, join } from 'path';
2
- import { fileURLToPath } from 'url';
3
- import { type App, LocalStateProvider, Octo } from '@quadnix/octo';
4
- import { HtmlReportEventListener, LoggingEventListener } from '@quadnix/octo-event-listeners';
5
- import { ModuleDefinitions } from './module-definitions.js';
6
-
7
- const __dirname = dirname(fileURLToPath(import.meta.url));
8
- const octoStatePath = join(__dirname, '..', '.octo');
9
-
10
- const octo = new Octo();
11
- const stateProvider = new LocalStateProvider(octoStatePath);
12
- await octo.initialize(stateProvider, [{ type: HtmlReportEventListener }, { type: LoggingEventListener }]);
13
-
14
- octo.registerTags([{ scope: {}, tags: { 'cdk': '<%= name %>' } }]);
15
-
16
- const moduleDefinitions = new ModuleDefinitions();
17
- for (const moduleDefinition of moduleDefinitions.getAll()) {
18
- octo.loadModule(moduleDefinition.module, moduleDefinition.moduleId, moduleDefinition.moduleInputs);
19
- }
20
- octo.orderModules(moduleDefinitions.getAll().map((m) => m.module));
21
-
22
- const { 'app-module.model.app': app } = (await octo.compose()) as { 'app-module.model.app': App };
23
- const transaction = octo.beginTransaction(app);
24
- await transaction.next();
@@ -1,201 +0,0 @@
1
- import {
2
- type AModule,
3
- type Account,
4
- type App,
5
- type Constructable,
6
- type Deployment,
7
- type Environment,
8
- type Execution,
9
- type ModuleSchemaInputs,
10
- type Region,
11
- type Server,
12
- type Subnet,
13
- SubnetType,
14
- stub,
15
- } from '@quadnix/octo';
16
- import { AwsIniAccountModule } from '@quadnix/octo-aws-cdk/modules/account/aws-ini-account';
17
- import { SimpleAppModule } from '@quadnix/octo-aws-cdk/modules/app/simple-app';
18
- import { AwsEcsDeploymentModule } from '@quadnix/octo-aws-cdk/modules/deployment/aws-ecs-deployment';
19
- import { AwsEcsEnvironmentModule } from '@quadnix/octo-aws-cdk/modules/environment/aws-ecs-environment';
20
- import { AwsEcsExecutionModule } from '@quadnix/octo-aws-cdk/modules/execution/aws-ecs-execution';
21
- import { AwsMultiAzRegionModule } from '@quadnix/octo-aws-cdk/modules/region/aws-multi-az-region';
22
- import { AwsMultiAzRegionId } from '@quadnix/octo-aws-cdk/modules/region/aws-multi-az-region/schema';
23
- import { AwsEcsServerModule } from '@quadnix/octo-aws-cdk/modules/server/aws-ecs-server';
24
- import { AwsEcsAlbServiceModule } from '@quadnix/octo-aws-cdk/modules/service/aws-ecs-alb-service';
25
- import { AwsSimpleSubnetModule } from '@quadnix/octo-aws-cdk/modules/subnet/aws-simple-subnet';
26
- import { config } from './app.config.js';
27
-
28
- type ModuleDefinition<T extends AModule<unknown, any>> = {
29
- module: Constructable<T>;
30
- moduleId: string;
31
- moduleInputs: ModuleSchemaInputs<T>;
32
- };
33
-
34
- export class ModuleDefinitions {
35
- private readonly moduleDefinitions: ModuleDefinition<AModule<unknown, any>>[] = [];
36
-
37
- constructor() {
38
- this.init();
39
- }
40
-
41
- add<T extends AModule<unknown, any>>(
42
- module: Constructable<T>,
43
- moduleId: string,
44
- moduleInputs: ModuleSchemaInputs<T>,
45
- ): void {
46
- this.moduleDefinitions.push({ module, moduleId, moduleInputs });
47
- }
48
-
49
- getAll(): ModuleDefinitions['moduleDefinitions'] {
50
- return this.moduleDefinitions;
51
- }
52
-
53
- private init(): void {
54
- this.add(SimpleAppModule, 'app-module', { name: 'aws-ecs-server' });
55
-
56
- this.add(AwsIniAccountModule, 'account-module', {
57
- accountId: config.AWS_ACCOUNT_ID,
58
- app: stub<App>('${{app-module.model.app}}'),
59
- });
60
-
61
- this.add(AwsMultiAzRegionModule, 'region-module', {
62
- account: stub<Account>('${{account-module.model.account}}'),
63
- name: 'app-region-east',
64
- regionIds: [AwsMultiAzRegionId.AWS_US_EAST_1A, AwsMultiAzRegionId.AWS_US_EAST_1B],
65
- vpcCidrBlock: '10.0.0.0/16',
66
- });
67
-
68
- this.add(AwsEcsServerModule, 'backend-server-module', {
69
- account: stub<Account>('${{account-module.model.account}}'),
70
- serverKey: 'backend',
71
- });
72
-
73
- this.add(AwsEcsDeploymentModule, 'backend-deployment-v1-module', {
74
- deploymentContainerProperties: {
75
- cpu: 256,
76
- image: {
77
- command: 'node webserver',
78
- ports: [{ containerPort: 80, protocol: 'tcp' }],
79
- uri: 'docker.io/ealen/echo-server:0.9.2',
80
- },
81
- memory: 512,
82
- },
83
- deploymentTag: 'v1',
84
- server: stub<Server>('${{backend-server-module.model.server}}'),
85
- });
86
-
87
- this.add(AwsEcsEnvironmentModule, 'qa-environment-module', {
88
- environmentName: 'qa',
89
- environmentVariables: { NODE_ENV: 'qa' },
90
- region: stub<Region>('${{region-module.model.region}}'),
91
- });
92
-
93
- this.add(AwsSimpleSubnetModule, 'public-subnet-module', {
94
- region: stub<Region>('${{region-module.model.region}}'),
95
- subnetAvailabilityZone: 'us-east-1a',
96
- subnetCidrBlock: '10.0.0.0/24',
97
- subnetName: 'public-subnet',
98
- subnetOptions: {
99
- createNatGateway: true,
100
- disableSubnetIntraNetwork: false,
101
- subnetType: SubnetType.PUBLIC,
102
- },
103
- });
104
- this.add(AwsSimpleSubnetModule, 'public-backup-subnet-module', {
105
- region: stub<Region>('${{region-module.model.region}}'),
106
- subnetAvailabilityZone: 'us-east-1b',
107
- subnetCidrBlock: '10.0.1.0/24',
108
- subnetName: 'public-backup-subnet',
109
- subnetOptions: {
110
- createNatGateway: false,
111
- disableSubnetIntraNetwork: false,
112
- subnetType: SubnetType.PUBLIC,
113
- },
114
- });
115
- this.add(AwsSimpleSubnetModule, 'private-subnet-module', {
116
- region: stub<Region>('${{region-module.model.region}}'),
117
- subnetAvailabilityZone: 'us-east-1a',
118
- subnetCidrBlock: '10.0.2.0/24',
119
- subnetName: 'private-subnet',
120
- subnetOptions: {
121
- createNatGateway: false,
122
- disableSubnetIntraNetwork: true,
123
- subnetType: SubnetType.PRIVATE,
124
- },
125
- subnetSiblings: [
126
- {
127
- attachToNatGateway: true,
128
- subnet: stub<Subnet>('${{public-subnet-module.model.subnet}}'),
129
- },
130
- {
131
- attachToNatGateway: false,
132
- subnet: stub<Subnet>('${{public-backup-subnet-module.model.subnet}}'),
133
- },
134
- ],
135
- });
136
-
137
- this.add(AwsEcsExecutionModule, 'backend-v1-qa-execution-module', {
138
- deployments: {
139
- main: {
140
- containerProperties: {
141
- image: {
142
- essential: true,
143
- name: 'backend-v1',
144
- },
145
- },
146
- deployment: stub<Deployment>('${{backend-deployment-v1-module.model.deployment}}'),
147
- },
148
- sidecars: [],
149
- },
150
- desiredCount: 1,
151
- environment: stub<Environment>('${{qa-environment-module.model.environment}}'),
152
- executionId: 'backend-v1-qa-execution',
153
- securityGroupRules: [
154
- {
155
- CidrBlock: '0.0.0.0/0',
156
- Egress: false,
157
- FromPort: 80,
158
- IpProtocol: 'tcp',
159
- ToPort: 80,
160
- },
161
- ],
162
- subnet: stub<Subnet>('${{private-subnet-module.model.subnet}}'),
163
- });
164
-
165
- this.add(AwsEcsAlbServiceModule, 'qa-api-alb-module', {
166
- albName: 'qa-api-alb',
167
- listeners: [
168
- {
169
- DefaultActions: [
170
- { action: { TargetGroups: [{ targetGroupName: 'backend-v1-80', Weight: 100 }] }, actionType: 'forward' },
171
- ],
172
- Port: 80,
173
- rules: [],
174
- },
175
- ],
176
- region: stub<Region>('${{region-module.model.region}}'),
177
- subnets: [
178
- stub<Subnet>('${{public-subnet-module.model.subnet}}'),
179
- stub<Subnet>('${{public-backup-subnet-module.model.subnet}}'),
180
- ],
181
- targets: [
182
- {
183
- containerName: 'backend-v1',
184
- containerPort: 80,
185
- execution: stub<Execution>('${{backend-v1-qa-execution-module.model.execution}}'),
186
- healthCheck: {
187
- HealthCheckIntervalSeconds: 30,
188
- HealthCheckPath: '/',
189
- HealthCheckPort: 80,
190
- HealthCheckProtocol: 'HTTP',
191
- HealthCheckTimeoutSeconds: 5,
192
- HealthyThresholdCount: 2,
193
- Matcher: { HttpCode: 200 },
194
- UnhealthyThresholdCount: 2,
195
- },
196
- Name: 'backend-v1-80',
197
- },
198
- ],
199
- });
200
- }
201
- }