Skip to content

Automated Deployments with GitHub Actions

Cased analyzes your GitHub Actions workflows, determines correct parameters, and triggers deployments with the right configuration for your target environment.

Manual deployments introduce errors and waste time. Cased understands your GitHub Actions setup, fills workflow parameters intelligently, and executes deployments with validation and monitoring.

How Deployment Works

Cased executes deployments through this workflow:

  1. Workflow Discovery: Analyzes your repository for deployment workflows and required inputs
  2. Parameter Resolution: Determines correct workflow input values from context
  3. Validation: Validates all parameters before triggering
  4. Execution: Triggers deployment with monitoring and status tracking
  5. Follow-up: Monitors progress and reports results

Supported Deployment Patterns

Environment-Based Deployments

  • Production: deploy to prod, deploy to production
  • Staging: deploy to staging, deploy to dev
  • Feature Environments: deploy feature-branch to preview

Branch-Based Deployments

  • Main Branch: Automatic detection of default branch
  • Feature Branches: Deploy specific branches to testing environments
  • Release Branches: Deploy release candidates to staging

Service-Specific Deployments

  • Microservices: Deploy individual services in mono-repo setups
  • Frontend/Backend: Deploy specific application components
  • Infrastructure: Deploy Terraform infrastructure changes

Workflow Input Resolution

Cased determines workflow parameters automatically:

Common Workflow Inputs

  • Branch/Ref: Detects current branch or asks for clarification
  • Environment: Infers from command or prompts for selection
  • Version: Uses latest commit SHA or specified version
  • Configuration: Applies environment-specific settings

Smart Parameter Detection

# Example workflow inputs that Cased can handle
inputs:
environment:
description: 'Deployment environment'
required: true
type: choice
options: ['staging', 'production']
ref:
description: 'Branch or tag to deploy'
required: true
default: 'main'
service:
description: 'Service to deploy'
required: false
type: choice
options: ['api', 'web', 'worker']

Example Deployment Commands

Basic Deployments

"Deploy to production"
"Deploy main branch to staging"
"Deploy the latest changes to prod"

Specific Branch Deployments

"Deploy feature-auth to staging"
"Deploy release-v2.1 to production"
"Deploy my current branch to preview"

Service-Specific Deployments

"Deploy the API service to production"
"Deploy frontend to staging"
"Deploy worker service to dev environment"

Parameterized Deployments

"Deploy v1.2.3 to production"
"Deploy with database migrations to staging"
"Deploy feature-xyz to preview environment"

Workflow Integration

Cased works with various GitHub Actions workflow patterns:

Standard Deployment Workflow

name: Deploy Application
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: choice
options: ['staging', 'production']
ref:
description: 'Branch or tag to deploy'
required: true
default: 'main'
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ inputs.environment }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
# ... deployment steps

Multi-Service Deployment

name: Deploy Services
on:
workflow_dispatch:
inputs:
services:
description: 'Services to deploy (comma-separated)'
required: true
default: 'api,web'
environment:
description: 'Target environment'
required: true
type: choice
options: ['dev', 'staging', 'prod']

Infrastructure Deployment

name: Deploy Infrastructure
on:
workflow_dispatch:
inputs:
terraform_action:
description: 'Terraform action'
required: true
type: choice
options: ['plan', 'apply', 'destroy']
environment:
description: 'Environment'
required: true
type: choice
options: ['staging', 'production']

Deployment Monitoring

Cased monitors deployments comprehensively:

Real-time Status Updates

  • Workflow Progress: Live deployment execution updates
  • Step-by-Step Tracking: Individual workflow step monitoring
  • Error Detection: Immediate failure notifications
  • Success Confirmation: Clear completion confirmations

Post-Deployment Validation

  • Health Checks: Validates deployed services automatically
  • Smoke Tests: Verifies critical functionality
  • Performance Monitoring: Detects performance regressions
  • Rollback Readiness: Prepares quick rollback options

Error Handling and Recovery

Deployment Failures

  • Immediate Notification: Alerts instantly on failures
  • Error Analysis: Analyzes failure causes in detail
  • Retry Logic: Retries transient failures intelligently
  • Rollback Assistance: Guides rollback procedures

Parameter Validation

  • Pre-deployment Checks: Validates parameters before starting
  • Conflict Detection: Identifies conflicting deployments
  • Permission Verification: Ensures proper permissions
  • Environment Status: Checks target environment health

Best Practices

Deployment Strategy

  1. Clear Workflow Names: Name deployment workflows descriptively
  2. Consistent Parameters: Standardize workflow input parameters
  3. Environment Protection: Enable GitHub environment protection
  4. Approval Gates: Require approvals for production

Workflow Configuration

  1. Required Inputs: Mark essential parameters as required
  2. Default Values: Provide sensible defaults for common parameters
  3. Input Validation: Validate inputs within the workflow
  4. Clear Descriptions: Document what each input parameter does

Monitoring and Alerting

  1. Slack Integration: Configure Slack notifications for deployment status
  2. Status Checks: Implement comprehensive health checks
  3. Rollback Plans: Have clear rollback procedures documented
  4. Performance Baselines: Monitor performance after deployments

Security Considerations

Access Control

  • GitHub Permissions: Set proper repository and workflow permissions
  • Environment Secrets: Store sensitive data in environment secrets
  • Approval Workflows: Require production deployment approvals
  • Audit Logging: Track all deployment activities

Safe Deployment Practices

  • Gradual Rollouts: Deploy with canary or blue-green strategies
  • Rollback Capability: Enable quick rollback options
  • Database Migrations: Execute database changes safely
  • Configuration Management: Secure environment-specific configurations