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¶
- Validate ingredients exist before submitting releases
- Use meaningful versions following your versioning scheme
- Include metadata for better traceability
- Test package files before submission
- Use
--wait
in CI/CD to ensure processing completes
For Downloads¶
- Specify target directories to organize downloads
- Use specific versions for reproducible builds
- Verify checksums for critical components
- Clean up old downloads to save disk space
For Automation¶
- Use aliases for shorter, cleaner scripts
- Handle errors gracefully with proper exit codes
- Implement retry logic for network reliability
- Use environment variables for project/feed names
- 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?¶
- Get release details - Release information and validation
- Download release - Complete download operations guide
- Submit release - Comprehensive guide to release submission
- Bulk submit - Batch processing with YAML
Need Other Operations?¶
- Ingredient commands- Discover and manage ingredients
- Main CLI overview - Complete CLI capabilities
Want Advanced Usage?¶
- Getting started - Essential commands and workflows
Related Documentation¶
- Understanding Releases - Core release concepts
- Release submission - Web-based submission process