Skip to content

Commit f265d66

Browse files
committed
chore: wip
1 parent eddba32 commit f265d66

5 files changed

Lines changed: 35 additions & 164 deletions

File tree

.pickierignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.zed/settings.json

Lines changed: 0 additions & 139 deletions
This file was deleted.

bun.lock

Lines changed: 3 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,5 @@
6666
}
6767
},
6868
"commit-msg": "bunx gitlint --edit .git/COMMIT_EDITMSG"
69-
},
70-
"dependencies": {
71-
"@stacksjs/ts-xml": "^0.1.0"
7269
}
7370
}

packages/ts-cloud/bin/commands/deploy.ts

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
import type { CLI } from '@stacksjs/clapp'
22
import { existsSync, statSync, writeFileSync, copyFileSync, readFileSync } from 'node:fs'
33
import * as cli from '../../src/utils/cli'
4+
5+
const isCI = !!process.env.CI || !!process.env.GITHUB_ACTIONS
6+
7+
/** Create a spinner that falls back to plain logs in CI */
8+
function createSpinner(message: string) {
9+
if (isCI) {
10+
console.log(message)
11+
return {
12+
start() {},
13+
succeed(msg: string) { console.log(`✓ ${msg}`) },
14+
fail(msg: string) { console.error(`✗ ${msg}`) },
15+
stop() {},
16+
}
17+
}
18+
const s = createSpinner(message)
19+
return s
20+
}
421
import { InfrastructureGenerator } from '../../src/generators/infrastructure'
522
import { CloudFormationClient } from '../../src/aws/cloudformation'
623
import { S3Client } from '../../src/aws/s3'
@@ -301,7 +318,7 @@ export function registerDeployCommands(app: CLI): void {
301318

302319
if (stackExists) {
303320
cli.info('Stack exists, updating...')
304-
const updateSpinner = new cli.Spinner('Updating CloudFormation stack...')
321+
const updateSpinner = createSpinner('Updating CloudFormation stack...')
305322
updateSpinner.start()
306323

307324
try {
@@ -335,7 +352,7 @@ export function registerDeployCommands(app: CLI): void {
335352
}
336353
else {
337354
cli.info('Creating new stack...')
338-
const createSpinner = new cli.Spinner('Creating CloudFormation stack...')
355+
const createSpinner = createSpinner('Creating CloudFormation stack...')
339356
createSpinner.start()
340357

341358
await cfn.createStack({
@@ -409,7 +426,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
409426
cli.step('Generating EC2 server infrastructure...')
410427

411428
// TODO: Generate server-specific infrastructure
412-
const spinner = new cli.Spinner('Deploying server infrastructure...')
429+
const spinner = createSpinner('Deploying server infrastructure...')
413430
spinner.start()
414431

415432
await new Promise(resolve => setTimeout(resolve, 2000))
@@ -449,7 +466,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
449466

450467
cli.step('Generating serverless infrastructure...')
451468

452-
const spinner = new cli.Spinner('Deploying serverless infrastructure...')
469+
const spinner = createSpinner('Deploying serverless infrastructure...')
453470
spinner.start()
454471

455472
await new Promise(resolve => setTimeout(resolve, 2000))
@@ -483,7 +500,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
483500
cli.info(`Stack: ${stackName}`)
484501
cli.info(`Region: ${region}`)
485502

486-
const spinner = new cli.Spinner('Checking deployment status...')
503+
const spinner = createSpinner('Checking deployment status...')
487504
spinner.start()
488505

489506
const cfn = new CloudFormationClient(region)
@@ -541,7 +558,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
541558
return
542559
}
543560

544-
const spinner = new cli.Spinner('Rolling back stack...')
561+
const spinner = createSpinner('Rolling back stack...')
545562
spinner.start()
546563

547564
const cfn = new CloudFormationClient(region)
@@ -656,7 +673,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
656673

657674
// Step 1: Upload to S3
658675
const s3 = new S3Client(region)
659-
const uploadSpinner = new cli.Spinner('Uploading files to S3...')
676+
const uploadSpinner = createSpinner('Uploading files to S3...')
660677
uploadSpinner.start()
661678

662679
await s3.sync({
@@ -678,7 +695,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
678695
// Step 2: Invalidate CloudFront (if distribution provided)
679696
if (shouldInvalidate && distributionId) {
680697
const cloudfront = new CloudFrontClient()
681-
const invalidateSpinner = new cli.Spinner('Invalidating CloudFront cache...')
698+
const invalidateSpinner = createSpinner('Invalidating CloudFront cache...')
682699
invalidateSpinner.start()
683700

684701
const invalidation = await cloudfront.invalidateAll(distributionId)
@@ -687,7 +704,7 @@ https://console.aws.amazon.com/cloudformation/home?region=${region}#/stacks/stac
687704
cli.info(`Invalidation ID: ${invalidation.Id}`)
688705

689706
if (shouldWait) {
690-
const waitSpinner = new cli.Spinner('Waiting for invalidation to complete...')
707+
const waitSpinner = createSpinner('Waiting for invalidation to complete...')
691708
waitSpinner.start()
692709
await cloudfront.waitForInvalidation(distributionId, invalidation.Id)
693710
waitSpinner.succeed('Invalidation completed!')
@@ -808,7 +825,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
808825
const ecs = new ECSClient(region)
809826

810827
// Step 1: Get ECR login credentials
811-
const loginSpinner = new cli.Spinner('Getting ECR credentials...')
828+
const loginSpinner = createSpinner('Getting ECR credentials...')
812829
loginSpinner.start()
813830

814831
const authResult = await ecr.getAuthorizationToken()
@@ -824,7 +841,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
824841
loginSpinner.succeed('ECR credentials obtained')
825842

826843
// Step 2: Docker login to ECR
827-
const dockerLoginSpinner = new cli.Spinner('Logging into ECR...')
844+
const dockerLoginSpinner = createSpinner('Logging into ECR...')
828845
dockerLoginSpinner.start()
829846

830847
const token = auth.authorizationToken || ''
@@ -850,7 +867,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
850867
dockerLoginSpinner.succeed('Logged into ECR')
851868

852869
// Step 3: Build Docker image
853-
const buildSpinner = new cli.Spinner('Building Docker image...')
870+
const buildSpinner = createSpinner('Building Docker image...')
854871
buildSpinner.start()
855872

856873
const imageUri = `${registryHost}/${repository}:${imageTag}`
@@ -871,7 +888,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
871888
buildSpinner.succeed('Docker image built')
872889

873890
// Step 4: Push to ECR
874-
const pushSpinner = new cli.Spinner('Pushing image to ECR...')
891+
const pushSpinner = createSpinner('Pushing image to ECR...')
875892
pushSpinner.start()
876893

877894
const dockerPush = spawn('docker', ['push', imageUri], {
@@ -890,7 +907,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
890907
pushSpinner.succeed('Image pushed to ECR')
891908

892909
// Step 5: Update ECS service
893-
const updateSpinner = new cli.Spinner('Updating ECS service...')
910+
const updateSpinner = createSpinner('Updating ECS service...')
894911
updateSpinner.start()
895912

896913
await ecs.updateService({
@@ -903,7 +920,7 @@ https://${bucket}.s3.${region}.amazonaws.com${prefix ? `/${prefix}` : ''}/index.
903920

904921
// Step 6: Wait for deployment (if requested)
905922
if (shouldWait) {
906-
const waitSpinner = new cli.Spinner('Waiting for deployment to stabilize...')
923+
const waitSpinner = createSpinner('Waiting for deployment to stabilize...')
907924
waitSpinner.start()
908925

909926
await ecs.waitForServiceStable(cluster, service)

0 commit comments

Comments
 (0)