Build Pipeline Journey
This document walks through the end-to-end build pipeline journey in Image Factory, from build submission through execution and artifact delivery.
Overview
The build pipeline in Image Factory transforms your code into deployable artifacts through a comprehensive, automated process. This journey covers everything from initial build submission to final artifact delivery, including monitoring, error handling, and optimization.
Key Concepts
- Build Methods: Docker, Buildx, Kaniko, Packer, Nix, Paketo
- Pipeline Stages: Submission β Validation β Execution β Completion β Delivery
- Artifacts: Container images, machine images, packages
- Monitoring: Real-time status, logs, metrics, notifications
π Phase 0: Project Setup
0.1 Choose Your Project Creation Method
Quick Start (For Later Repository Setup)
π― When to use: You want to create the project now, configure repository later
π How to access: Projects page β Click "Create Project" button
π What you'll enter: Project name, description, visibility only
β οΈ Important: You'll need to add repository info before creating builds
Complete Setup (Ready for Builds Immediately)
π― When to use: You have repository details ready and want to build right away
π How to access: Projects page β Click "New Project" link (not button)
π What you'll enter: Project name, description, repository URL, default branch
β
Ready: Can create builds immediately after creation
0.2 How to Tell Which Method You're Using
You're Using the Modal (Quick Method):
- Small popup window appears
- Only 3 fields: Name, Description, Visibility
- No repository URL field visible
You're Using the Full Page (Complete Method):
- Navigates to dedicated project creation page
- 4+ fields including Repository URL and Branch
- Full form layout with additional options
0.3 Check If Project Has Repository Configured
Visual Status Indicators:
- Header Badge: Green "Repository Connected" or Yellow "Repository Not Set" badge next to project name
- Status Card: Large colored card below project header showing repository status
- Branch Display: Current default branch shown prominently when configured
Method 1: Project Dashboard (Most Obvious)
π Look at: Top of project page, right next to project name
π Status Badge: "Repository Connected" (green) or "Repository Not Set" (yellow)
β
Configured: Green badge + detailed repository card below
β Not Configured: Yellow badge + warning card with "Configure Repository" button
Method 2: Repository Details Card
π Look at: Large colored card below project header
π What's shown: Repository URL, branch, connection status
β
Configured: Green card with full repository details
β Not Configured: Yellow warning card with setup instructions
0.4 Add Repository to Existing Project
If you used quick creation and need to add repository:
1οΈβ£ Look for: Yellow "Repository Not Set" badge next to project name
2οΈβ£ Click: "Configure Repository" button in the warning card below header
3οΈβ£ Or click: "Edit Project" button to access full settings
4οΈβ£ Enter: Repository URL (HTTPS/SSH format)
5οΈβ£ Enter: Default branch (usually "main" or "master")
6οΈβ£ Click: "Save" to update project
β
Result: Badge turns green, repository card shows connection details
Alternative access:
- Click "Edit Project" button in the top-right
- Navigate to project settings manually
0.5 Quick Decision Guide
| Situation | Recommended Method | Next Steps |
|---|---|---|
| New to Image Factory | Quick creation | Add repository later via settings |
| Have repo details ready | Complete setup | Start building immediately |
| Team collaboration | Complete setup | Everyone can build right away |
| Just exploring | Quick creation | Configure when ready to build |
| Migrating existing project | Complete setup | Full configuration from start |
0.6 Verify Project Readiness
Before creating your first build, confirm:
β
Project exists in your tenant
β
Repository URL is configured (not empty)
β
Repository is accessible with your credentials
β
Default branch exists (usually "main" or "master")
π Phase 1: Build Submission
1.1 Access Build Interface
Location: Projects β [Project Name] β Builds tab or Create Build page
What happens:
- Navigate to your project dashboard
- Click "New Build" or "Create Build" button
- Select build method (Docker/Buildx/Kaniko/Packer/Nix/Paketo)
1.2 Configure Build Parameters
Basic Configuration
π Build Name: Give your build a descriptive name
π·οΈ Tags: Add version tags, environment labels
π¦ Build Method: Choose appropriate build technology
Note: Repository source is configured at the project level. When you select a project, the build will automatically use that project's configured Git repository and default branch.
1.3 Method-Specific Configuration
π³ Docker/Buildx/Kaniko Builds
π Dockerfile: Upload file, paste content, or use template
ποΈ Build Context: Repository root or subdirectory
π·οΈ Target Stage: Multi-stage build target
π§ Build Args: Environment variables for build
π Secrets: Sensitive values for build process
π¦ Packer Builds
π Template: JSON configuration for machine images
π§ Variables: Dynamic values for template
π― Builders: AWS AMI, GCP Images, Azure VMs, etc.
π€ Post-Processors: Artifact handling and distribution
βοΈ Nix Builds
π Expression: Nix language build definition
π― Flake URI: Modern Nix flake reference
ποΈ Attributes: Build targets within flake
πΎ Cache: Nix store optimization
π οΈ Paketo Builds
ποΈ Builder: Paketo builder image selection
π¦ Buildpacks: Language/framework buildpacks
π§ Environment: Build-time configuration
π Bindings: External service connections
1.4 Infrastructure Selection (NEW - Phase 3)
AI-Powered Recommendations
π§ Smart Selection: AI analyzes your build requirements
β‘ Auto Recommendation: Suggests optimal infrastructure automatically
π― Confidence Score: Shows recommendation certainty (80-95%)
π Alternative Options: Provides fallback choices with reasoning
Infrastructure Types Available
βΈοΈ Kubernetes Cluster: Scalable container orchestration (Primary)
π₯οΈ Build Nodes: Dedicated build servers (Fallback)
ποΈ Auto Selection: Let system choose based on requirements (Recommended)
How Infrastructure Selection Works
1οΈβ£ Analysis: System analyzes build method, size, and requirements
2οΈβ£ Recommendation: AI suggests best infrastructure with confidence score
3οΈβ£ User Choice: Accept recommendation or manually select alternative
4οΈβ£ Execution: Build runs on selected infrastructure automatically
Infrastructure Selection UI
π Location: "Infrastructure" tab in build creation wizard
β±οΈ Loading: Recommendations appear within 5 seconds
π Display: Recommended infrastructure with reasoning
ποΈ Controls: Radio buttons for manual selection
π‘ Help: Explanations for each infrastructure type
Important Security Note
π Admin Configuration: Infrastructure providers are configured by system administrators only
π€ User Selection: Users can only select from pre-configured, available infrastructure
π‘οΈ Permission Separation: No user access to provider credentials or configuration
Specialized Routing Examples
π― GPU Workloads: Automatically routed to GPU-enabled clusters
π¦ Large Builds: Directed to high-memory build nodes
π Standard Builds: Run on cost-effective Kubernetes pods
π Secure Builds: Use compliance-certified infrastructure
1.5 Advanced Options
Build Optimization
π Parallel Builds: Multi-platform compilation
πΎ Caching: Layer caching for faster builds
π Retry Logic: Automatic failure recovery
β±οΈ Timeout: Maximum build duration
Security & Compliance
π‘οΈ SBOM Generation: Software bill of materials
π Vulnerability Scanning: Security analysis
π Compliance Checks: Policy enforcement
1.6 Submit Build
Action: Click "Submit Build" or "Start Build"
Immediate Feedback:
- Build ID generation (e.g.,
build-12345) - Initial status: "Queued" or "Pending"
- Estimated queue time display
- Infrastructure assignment confirmation
π Phase 2: Build Validation & Preparation
2.1 Pre-Flight Checks
Duration: 10-30 seconds
Validation Steps:
β
Repository Access: Verify Git permissions for project's configured repository (fails if no repository configured)
β
Dockerfile/Packer Template: Syntax validation
β
Build Context: Path existence check within repository
β
Required Secrets: Availability verification
β
Resource Limits: Quota compliance check
Possible Outcomes:
- β Validation Passed: Build moves to queue
- β οΈ Validation Failed: Error message with fix guidance
- π Retry Available: Automatic retry for transient issues
- π¨ Repository Not Configured: Redirect to project settings to add repository information
2.2 Resource Allocation
Duration: 5-60 seconds (depending on queue)
Infrastructure Assignment Process:
π― Smart Routing: AI-powered infrastructure selection based on build requirements
βΈοΈ Kubernetes Priority: Container builds run on K8s pods by default
π₯οΈ Build Nodes: Specialized workloads use dedicated build servers
βοΈ Load Balancing: Distribute builds across available infrastructure
π Auto-Scaling: Scale infrastructure capacity based on demand
Resource Allocation Steps:
ποΈ Infrastructure Selection: Choose between Kubernetes or build nodes
πΎ Volume Mounting: Attach persistent storage if needed
π Network Setup: Configure VPC, security groups
π Secret Injection: Mount secrets securely
π Resource Limits: Apply CPU/memory constraints based on infrastructure
2.3 Build Environment Setup
Duration: 10-45 seconds
Environment Preparation:
π³ Base Image Pull: Download specified base images
π¦ Dependency Cache: Restore cached dependencies
π§ Tool Installation: Set up build tools and runtimes
π Configuration: Apply build-specific settings
βοΈ Phase 3: Build Execution
3.0 Infrastructure Assignment & Routing (NEW - Phase 3)
Smart Infrastructure Routing
π― Assignment Logic: Based on build requirements and user selection
βΈοΈ Kubernetes Priority: Primary infrastructure for containerized builds
π₯οΈ Build Nodes Fallback: Dedicated servers for specialized workloads
βοΈ Load Balancing: Distribute across available infrastructure
π Auto-Scaling: Scale infrastructure based on demand
Infrastructure Selection Process
1οΈβ£ Build Analysis: Evaluate build method, size, and requirements
2οΈβ£ Infrastructure Matching: Find optimal worker based on capabilities
3οΈβ£ Resource Reservation: Allocate compute resources
4οΈβ£ Environment Preparation: Set up build environment on assigned infrastructure
Infrastructure Types & Capabilities
βΈοΈ Kubernetes Pods:
β’ Container-native execution
β’ Auto-scaling and self-healing
β’ GPU support for ML workloads
β’ Cost-effective for standard builds
π₯οΈ Build Nodes:
β’ Dedicated VM instances
β’ High-memory configurations
β’ Specialized hardware (GPU, ARM)
β’ Compliance-certified environments
Routing Decision Factors
π Build Size: Large builds β High-memory infrastructure
π― Build Type: GPU workloads β GPU-enabled clusters
π Security Level: Compliance builds β Certified infrastructure
β‘ Performance: Time-sensitive β Optimized workers
π° Cost Optimization: Standard builds β Cost-effective pods
3.1 Build Phases (Method-Specific)
π³ Docker Build Execution
π¦ Phase 1: Base image download (30-120s)
ποΈ Phase 2: Instruction execution (60-900s)
π Phase 3: Metadata generation (10-30s)
π·οΈ Phase 4: Image tagging (5-15s)
π€ Phase 5: Registry push (20-180s)
π¦ Packer Build Execution
π§ Phase 1: Template validation (5-15s)
ποΈ Phase 2: Builder execution (300-3600s)
π€ Phase 3: Artifact upload (60-600s)
π§Ή Phase 4: Cleanup (10-30s)
βοΈ Nix Build Execution
π Phase 1: Expression evaluation (10-60s)
π¦ Phase 2: Dependency resolution (30-300s)
ποΈ Phase 3: Package compilation (60-1800s)
πΎ Phase 4: Store optimization (15-60s)
3.2 Real-Time Monitoring
Build Status Indicators
π Queued: Waiting for worker availability
βοΈ Preparing: Environment setup in progress
π Running: Active build execution
π Processing: Post-build operations
β
Completed: Successful build finish
β Failed: Build error occurred
βΈοΈ Paused: Manual intervention required
Progress Tracking
π Progress Bar: Visual completion percentage
β±οΈ Elapsed Time: Current build duration
π― Current Step: Active build instruction
π Metrics: CPU, memory, disk usage
3.3 Log Streaming
Log Types Available
π Build Logs: Command output and messages
π Debug Logs: Detailed execution tracing
π System Logs: Infrastructure events
π¨ Error Logs: Failure diagnostics
Log Features
π Real-time streaming
π Full log download
π Search and filtering
π Log analytics
π Log-based alerts
3.4 Build Artifacts
Artifact Generation
π·οΈ Image Tags: Registry references
π¦ Package Files: Downloadable assets
π SBOM Documents: Security manifests
π Build Reports: Execution summaries
π Signatures: Cryptographic verification
Artifact Storage
βοΈ Cloud Storage: S3, GCS, Azure Blob
π’ Registry: Docker Hub, ECR, GCR, Harbor
π¦ Local Cache: Worker node storage
π CDN: Global distribution
π Phase 4: Build Completion & Analysis
4.1 Completion Processing
Duration: 10-60 seconds
Final Steps:
β
Status Update: Mark build as completed
π Metrics Collection: Gather performance data
π§Ή Resource Cleanup: Free allocated resources
π Report Generation: Create build summary
π Notification Dispatch: Alert stakeholders
4.2 Build Results Dashboard
Success Metrics
β±οΈ Total Duration: End-to-end build time
πΎ Artifact Size: Generated package size
π·οΈ Tags Applied: Version and metadata tags
π Test Results: If applicable
π‘οΈ Security Score: Vulnerability assessment
Quality Metrics
π Code Coverage: Test coverage percentage
π Issues Found: Static analysis results
π Compliance: Policy check results
π Security: Vulnerability scan results
4.3 Artifact Distribution
Automatic Deployment
π CD Integration: Trigger downstream deployments
π¦ Package Registries: Push to artifact repositories
βοΈ Cloud Storage: Upload to object storage
π CDN Updates: Refresh content delivery
Manual Distribution
π₯ Download Links: Direct artifact access
π Registry URLs: Pull instructions
π API Endpoints: Programmatic access
π Webhooks: External system integration
π¨ Phase 5: Error Handling & Recovery
5.1 Build Failure Scenarios
Common Failure Types
β Build Errors: Code compilation failures
π Test Failures: Unit/integration test errors
π‘οΈ Security Blocks: Policy violation rejections
β±οΈ Timeout: Build duration exceeded limits
πΎ Resource Exhaustion: Memory/CPU/disk limits
π Network Issues: Connectivity problems
Error Classification
π΄ Critical: Build cannot proceed
π‘ Warning: Non-blocking issues
π’ Info: Informational messages
π΅ Debug: Detailed troubleshooting data
5.2 Automatic Recovery
Retry Logic
π Automatic Retries: Transient failure recovery
β³ Exponential Backoff: Progressive delay increases
π― Smart Retry: Context-aware retry decisions
π Failure Analytics: Pattern recognition
Fallback Strategies
π Alternative Workers: Different machine types
π¦ Cached Dependencies: Skip redundant downloads
π Parallel Execution: Distribute across workers
π οΈ Tool Updates: Refresh build environment
5.3 Manual Intervention
Debug Access
π Debug Session: Interactive troubleshooting
π Log Analysis: Detailed error examination
π§ Environment Access: Direct worker connection
π Performance Metrics: Resource usage analysis
Resolution Options
π Rebuild: Restart with same configuration
βοΈ Reconfigure: Modify build parameters
π οΈ Environment Fix: Update build environment
π Support Request: Escalate to engineering team
π Phase 6: Build Analytics & Optimization
6.1 Performance Monitoring
Build Metrics
β±οΈ Build Duration: Average, median, percentiles
π Success Rate: Pass/fail percentages
πΎ Resource Usage: CPU, memory, disk consumption
π Network Traffic: Data transfer volumes
Trend Analysis
π Performance Trends: Duration changes over time
π― Success Trends: Reliability improvements
π° Cost Analysis: Resource usage costs
π Bottleneck Identification: Slowest build steps
6.2 Build History
Historical Data
π Build Timeline: Chronological build list
π Search & Filter: Find specific builds
π Comparison: Side-by-side build analysis
π Change Tracking: Configuration modifications
Build Insights
π― Most Active: Frequently built projects
β±οΈ Slowest Builds: Performance optimization targets
β Failure Patterns: Common error identification
β
Success Patterns: Best practice identification
6.3 Optimization Recommendations
Automated Suggestions
πΎ Cache Optimization: Improve layer caching
ποΈ Parallel Builds: Multi-platform optimization
π¦ Dependency Management: Update strategies
π οΈ Tool Updates: Latest version recommendations
Manual Optimizations
π§ Build Script Tuning: Performance improvements
π Configuration Refinement: Parameter optimization
π Network Optimization: Registry mirror usage
π½ Storage Optimization: Artifact size reduction
π Phase 7: Integration & Automation
7.1 CI/CD Integration
Webhook Triggers
π Git Push: Automatic build on code changes
π·οΈ Tag Creation: Release build triggers
π PR Events: Pull request validation
π Schedule: Time-based build execution
Pipeline Orchestration
π Jenkins Integration: Classic CI/CD
π GitHub Actions: Cloud-native workflows
ποΈ GitLab CI: Integrated DevOps
βοΈ Cloud Build: Managed build services
7.2 API Integration
Programmatic Access
π§ REST API: Full build lifecycle control
π Webhooks: Real-time event notifications
π SDKs: Language-specific client libraries
π€ ChatOps: Slack/Discord integration
External Systems
π Jira: Issue tracking integration
π Datadog: Monitoring and alerting
βοΈ CloudWatch: AWS service integration
π Grafana: Dashboard visualization
π― Success Criteria
For Build Submission
- β Build accepted without validation errors
- β Clear progress indicators throughout process
- β Real-time status updates and notifications
For Build Execution
- β Successful artifact generation
- β Complete log availability and searchability
- β Performance metrics collection and analysis
For Build Completion
- β Artifact delivery to specified destinations
- β Automated deployment triggers (if configured)
- β Comprehensive build reports and analytics
For Error Scenarios
- β Clear error messages with actionable guidance
- β Automatic retry mechanisms for transient failures
- β Debug access and troubleshooting tools
π Quick Actions Reference
Emergency Actions
π Stop Build: Immediate build cancellation
π Restart Build: Re-run with same configuration
π Debug Mode: Enable detailed logging
π Support: Contact engineering team
Common Tasks
π View Logs: Access real-time build output
π¦ Download Artifacts: Retrieve build outputs
π Search Builds: Find historical builds
π View Reports: Access build analytics
Optimization Tasks
πΎ Enable Caching: Improve build performance
π·οΈ Tag Management: Organize build versions
π Monitor Trends: Track build performance
π§ Update Config: Modify build parameters
π Support & Troubleshooting
Self-Service Resources
π Documentation: Comprehensive build guides
π₯ Video Tutorials: Visual walkthroughs
π€ Chat Support: AI-powered assistance
π FAQ: Common issue resolution
Escalation Paths
1οΈβ£ Team Lead: Project-specific issues
2οΈβ£ Engineering: Technical build problems
3οΈβ£ Infrastructure: Platform and scaling issues
4οΈβ£ Security: Compliance and vulnerability concerns
π Congratulations! You've completed the comprehensive Build Pipeline Journey. Your builds now follow a robust, monitored, and optimized process from submission to shipment.