Skip to content

Release Commands

Release commands are the core of VDC CLI functionality, enabling you to submit new ingredient releases and download existing ones. These commands support both interactive use and automation scenarios, making them essential for CI/CD pipelines and development workflows.


Available Commands

Command Alias Purpose When to Use
vdc ingredient-release get - Get release details Validation, debugging, automation
vdc ingredient-release download vdc download Download release packages Local development, testing, deployment
vdc ingredient-release submit vdc submit Submit new releases CI/CD builds, manual releases
vdc ingredient-release bulk-submit - Submit multiple releases Batch operations, complex scenarios

Quick Command Reference

Get Release Information

# Get release details
vdc ingredient-release get -p PROJECT -f FEED -n INGREDIENT -v VERSION --token $VDC_TOKEN

Download Releases

# Using full command
vdc ingredient-release download -p PROJECT -f FEED -n INGREDIENT --token $VDC_TOKEN

# Using alias (recommended for daily use)  
vdc download -p PROJECT -f FEED -n INGREDIENT --token $VDC_TOKEN

Submit Single Release

# Using full command
vdc ingredient-release submit -p PROJECT -f FEED -n INGREDIENT -v VERSION --packageFile FILE.zip --token $VDC_TOKEN

# Using alias (recommended for daily use)
vdc submit -p PROJECT -f FEED -n INGREDIENT -v VERSION --packageFile FILE.zip --token $VDC_TOKEN

Bulk Submit Multiple Releases

# Submit multiple releases from YAML
vdc ingredient-release bulk-submit --path releases.yaml --token $VDC_TOKEN

Common Use Cases

Development Workflow

  • Submit builds from local development or CI/CD pipelines
  • Download dependencies for testing and integration
  • Validate releases before and after submission
  • Batch process multiple related releases

CI/CD Integration

  • Automated submission of build artifacts
  • Dependency management in build pipelines
  • Release validation and verification
  • Multi-component releases with proper ordering

Testing and Validation

  • Download specific versions for reproducible testing
  • Compare release metadata between versions
  • Verify submission success and release properties
  • Analyze dependencies and relationships

Typical Workflows

1. Single Release Workflow

# Step 1: Build your component
# ... your build process ...

# Step 2: Submit release
vdc submit -p validation-team -f main -n MY_COMPONENT -v 1.0.0 --packageFile ./build/component.zip --token $VDC_TOKEN

# Step 3: Verify submission
vdc ingredient-release get -p validation-team -f main -n MY_COMPONENT -v 1.0.0 --token $VDC_TOKEN

# Step 4: Download for testing (optional)
vdc download -p validation-team -f main -n MY_COMPONENT -v 1.0.0 --target ./test-downloads --token $VDC_TOKEN

2. Dependency Download Workflow

# Step 1: Download required components
vdc download -p validation-team -f main -n BIOS_BASE --target ./dependencies/bios --token $VDC_TOKEN
vdc download -p validation-team -f main -n UCODE_BASE --target ./dependencies/ucode --token $VDC_TOKEN

# Step 2: Use in your build process
# ... build using downloaded dependencies ...

# Step 3: Submit your release
vdc submit -p validation-team -f main -n MY_IFWI -v 2.0.0 --packageFile ./build/ifwi.zip --token $VDC_TOKEN

3. Bulk Release Workflow

# Step 1: Prepare YAML with multiple releases
cat > releases.yaml << EOF
project: "validation-team"
feed: "main"
releases:
  - name: "COMPONENT_A"
    version: "1.0.0"
    packageFiles: ["./builds/component-a.zip"]
  - name: "COMPONENT_B" 
    version: "1.0.0"
    packageFiles: ["./builds/component-b.zip"]
EOF

# Step 2: Submit all releases
vdc ingredient-release bulk-submit --path releases.yaml --token $VDC_TOKEN

# Step 3: Verify submissions
vdc ingredient-release get -p validation-team -f main -n COMPONENT_A -v 1.0.0 --token $VDC_TOKEN

Command Aliases

VDC CLI provides convenient aliases for the most commonly used release commands:

Full Command Alias Notes
vdc ingredient-release submit vdc submit Recommended for daily use
vdc ingredient-release download vdc download Recommended for daily use

Why Use Aliases?

  • Faster to type - Less characters for common operations
  • Easier to remember - Simple, intuitive command names
  • Better for CI/CD - Shorter commands in scripts and pipelines

When to Use Full Commands?

  • Documentation - Full commands are clearer in written instructions
  • Scripts for others - More explicit about what the command does
  • Learning - Helps understand the command structure

Understanding Command Output

Submission Results

When you submit a release, you'll see:

  • Validation messages - Checks for ingredient existence, version uniqueness
  • Upload progress - Package file upload status
  • Processing status - Server-side processing (if using --wait)
  • Success confirmation - Release ID and location

Download Results

When you download a release:

  • File information - What files are being downloaded
  • Download progress - Transfer status for large files
  • Extraction info - If using --unzip option
  • Final location - Where files were saved

Best Practices

For Submission

  1. Validate ingredients exist before submitting releases
  2. Use meaningful versions following your versioning scheme
  3. Include metadata for better traceability
  4. Test package files before submission
  5. Use --wait in CI/CD to ensure processing completes

For Downloads

  1. Specify target directories to organize downloads
  2. Use specific versions for reproducible builds
  3. Verify checksums for critical components
  4. Clean up old downloads to save disk space

For Automation

  1. Use aliases for shorter, cleaner scripts
  2. Handle errors gracefully with proper exit codes
  3. Implement retry logic for network reliability
  4. Use environment variables for project/feed names
  5. Log operations for debugging and auditing

Error Handling

Common Issues

  • Ingredient not found: Check project/feed/name spelling and access permissions
  • Version already exists: Use different version or check existing releases
  • Package file not found: Verify file paths and build completion
  • Authentication failed: Verify token is valid and user has project access
  • Network timeouts: Implement retry logic for large file operations

Debugging Tips

# Use verbose mode for detailed information
vdc submit -p PROJECT -f FEED -n INGREDIENT -v VERSION --packageFile FILE --verbose --token $VDC_TOKEN

# Test authentication first
vdc ingredient-release --help

# Verify ingredient exists before submission
vdc ingredient get -p PROJECT -f FEED -n INGREDIENT --token $VDC_TOKEN

# Check available versions before downloading
vdc ingredient get -p PROJECT -f FEED -n INGREDIENT --token $VDC_TOKEN | jq '.ReleaseCount'

Next Steps

Ready for Detailed Commands?

Need Other Operations?

Want Advanced Usage?