Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.cirron.com/llms.txt

Use this file to discover all available pages before exploring further.

cirron deploy

Deploy your ML project to Cirron environments (development, staging, production) with support for build, artifact upload, deployment monitoring, and rollback capabilities.

Usage

cirron deploy [options]

Options

OptionDescriptionDefault
--env, -eTarget environment (development, staging, production)development
--message, -mDeployment messageAuto-generated
--no-buildSkip build stepfalse
--force, -fForce deploy (skip confirmation)false
--rollbackRollback to previous successful deploymentfalse

Deployment Workflow

1. Pre-deployment Checks

  • Project Configuration: Validates cirron.yaml exists
  • Authentication: Ensures user is authenticated
  • Environment Validation: Verifies target environment exists
  • Production Confirmation: Prompts for production deployments

2. Build Process

  • Automatic Build: Runs cirron build unless --no-build is specified
  • Build Validation: Verifies build output exists
  • Clean Build: Uses --clean flag for fresh builds

3. Pre-deploy Commands

  • Command Execution: Runs configured beforeDeploy commands
  • Error Handling: Fails deployment if pre-deploy commands fail
  • Verbose Output: Shows command output in verbose mode

4. Deployment Creation

  • Deployment Data: Creates deployment with project and environment info
  • Artifact Upload: Uploads build artifacts to Cirron
  • Deployment Start: Initiates deployment process

5. Deployment Monitoring

  • Status Tracking: Monitors deployment progress
  • Status Updates: Shows current deployment status
  • Timeout Handling: 5-minute timeout for deployment monitoring

6. Post-deploy Commands

  • Success Commands: Runs afterDeploy commands on successful deployment
  • Error Handling: Continues deployment even if post-deploy commands fail
  • Logging: Logs post-deploy command execution

Rollback Functionality

Rollback to the previous successful deployment in the target environment.
# Rollback to previous deployment
cirron deploy --env production --rollback

# Force rollback without confirmation
cirron deploy --env staging --rollback --force

Rollback Process

  1. Previous Deployment Search: Finds the most recent successful deployment
  2. Confirmation: Prompts for confirmation (unless --force is used)
  3. Rollback Execution: Performs rollback to previous deployment
  4. Monitoring: Monitors rollback progress
  5. Verification: Confirms rollback success

Examples

Basic Deployment

# Deploy to development (default)
cirron deploy

# Deploy to staging
cirron deploy --env staging

# Deploy to production (with confirmation)
cirron deploy --env production

# Deploy to production without confirmation
cirron deploy --env production --force

Skip Build

# Deploy without building
cirron deploy --no-build

# Deploy to staging without build
cirron deploy --env staging --no-build

Custom Deployment Message

# Add deployment message
cirron deploy --env staging --message "Update model pipeline"

# Production deployment with message
cirron deploy --env production --message "Release v1.2.0" --force

Rollback Operations

# Rollback production deployment
cirron deploy --env production --rollback

# Force rollback staging deployment
cirron deploy --env staging --rollback --force

Configuration

Project Configuration

Deployment options are configured in your cirron.yaml:
{
  "name": "my-ml-project",
  "version": "1.0.0",
  "environments": {
    "development": {
      "url": "https://dev-app.cirron.com"
    },
    "staging": {
      "url": "https://staging-app.cirron.com"
    },
    "production": {
      "url": "https://app.cirron.com"
    }
  },
  "build": {
    "outputDir": "dist/",
    "command": "npm run build"
  },
  "deploy": {
    "beforeDeploy": [
      "echo 'Running pre-deploy checks'",
      "npm run test"
    ],
    "afterDeploy": [
      "echo 'Deployment completed'",
      "curl -X POST https://hooks.slack.com/..."
    ]
  }
}

Environment Configuration

Each environment can have specific configuration:
{
  "environments": {
    "development": {
      "url": "https://dev-app.cirron.com",
      "variables": {
        "DEBUG": "true"
      }
    },
    "production": {
      "url": "https://app.cirron.com",
      "variables": {
        "DEBUG": "false"
      }
    }
  }
}

Deployment Monitoring

Status Tracking

The deployment process tracks multiple statuses:
  • pending: Deployment is queued
  • building: Building deployment container
  • deploying: Deploying to infrastructure
  • success: Deployment completed successfully
  • failed: Deployment failed

Monitoring Output

Deployment queued...
Building deployment...
Deploying to infrastructure...
Deployment completed successfully!

Deployment Results

Environment: production
Deployment ID: dep_abc123
URL: https://my-project.production.cirron.com
Deploy time: 2m 15s

Artifact Upload

Build Artifacts

The deploy command automatically uploads build artifacts:
  • Output Directory: Uses build.outputDir from configuration
  • File Filtering: Skips certain files (.DS_Store, Thumbs.db, etc.)
  • Batch Upload: Uploads files in batches of 5
  • Progress Tracking: Shows upload progress

Skipped Files

The following files are automatically skipped:
  • .DS_Store (macOS)
  • Thumbs.db (Windows)
  • .git directories
  • node_modules directories
  • .env files
  • .log files

Error Handling

Common Errors

Missing Project Configuration

Error: No cirron.yaml found
Solution: Initialize your project
cirron init my-project

Authentication Required

Error: Not authenticated
Solution: Authenticate with Cirron
cirron auth login

Environment Not Found

Error: Environment 'production' not found
Solution: Check available environments
# Check cirron.yaml for available environments
cat cirron.yaml

Build Failure

Error: Build failed
Solutions:
# Run build separately to debug
cirron build --env production

# Check build configuration
cat cirron.yaml

No Previous Deployment for Rollback

Error: No previous successful deployment found
Solution: Ensure there are at least 2 successful deployments

Recovery Actions

  1. Build Issues
    # Debug build separately
    cirron build --env production --verbose
    
    # Check build output
    ls -la dist/
    
  2. Deployment Failures
    # Check deployment logs
    cirron logs
    
    # Retry deployment
    cirron deploy --env production
    
  3. Rollback Issues
    # Check deployment history
    cirron logs --env production
    
    # Manual rollback
    cirron deploy --env production --rollback --force
    

Best Practices

Deployment Strategy

  • Test in Staging: Always test in staging before production
  • Use Messages: Add descriptive deployment messages
  • Monitor Deployments: Watch deployment progress and logs
  • Rollback Plan: Have a rollback strategy for production

Configuration Management

  • Environment Separation: Keep development, staging, and production separate
  • Pre-deploy Hooks: Use pre-deploy commands for validation
  • Post-deploy Hooks: Use post-deploy commands for notifications
  • Build Optimization: Optimize build process for faster deployments

Security Considerations

  • Production Confirmation: Always confirm production deployments
  • Environment Variables: Use secure environment variable management
  • Access Control: Ensure proper access controls for production
  • Audit Trail: Keep deployment logs for audit purposes

Integration

CI/CD Pipeline

# GitHub Actions example
- name: Deploy to Staging
  run: |
    cirron deploy --env staging --message "CI/CD deployment" --force

- name: Deploy to Production
  run: |
    cirron deploy --env production --message "Release ${{ github.ref_name }}" --force

Development Workflow

# Development cycle
cirron build --env development
cirron deploy --env development

# Staging deployment
cirron deploy --env staging --message "Testing new features"

# Production deployment
cirron deploy --env production --message "Release v1.2.0"

Troubleshooting

Debugging Deployment Issues

# Check project configuration
cat cirron.yaml

# Verify authentication
cirron auth status

# Test build process
cirron build --env production

# Check deployment logs
cirron logs --env production

Common Problems

  • Network Issues: Check internet connection and firewall settings
  • Authentication Expired: Re-authenticate with cirron auth login
  • Build Failures: Check build configuration and dependencies
  • Deployment Timeouts: Check infrastructure status and resource availability
  • cirron build - Build project before deployment
  • cirron logs - View deployment logs
  • cirron auth - Manage authentication
  • cirron status - Check deployment status