Skip to content

Submit Release

The vdc ingredient-release submit command (alias: vdc submit) submits new ingredient releases to VDC. This is one of the most commonly used commands for publishing builds, firmware updates, and other component releases.


Command Syntax

vdc ingredient-release submit [options]
vdc submit [options]  # Alias (recommended)

Required Parameters

  • --project <project> (-p): Target project name
  • --name <name> (-n): Ingredient name
  • --version <version> (-v): Release version
  • --packageFile <packageFile>: Package file(s) to upload (can be specified multiple times)

Optional Parameters

  • --feed <feed> (-f): Target feed name
  • --metadata <metadata> (-m): JSON metadata file path
  • --wait (-w): Wait for submission processing to complete
  • --verbose: Enable detailed logging for debugging
  • --token <token>: Authentication token

Options Reference

Option Shortcut Description Required Example
--project <project> -p The project name in VDC Yes --project validation-team
--feed <feed> -f Name of feed in project No --feed main
--name -n Name of the ingredient Yes
--version -v Version of the specific ingredient release to submit Yes
--packageFile <packageFile> Package file with the ingredient release Yes
--metadata <metadata> -m A JSON file with additional metadata, such as a baseline, dependencies, description, release data, and milestones. Some ingredient schemas may contain additional data, such as an IFWI contains list of knobs and straps. If set, the CLI will wait until the server completed processing the No
--wait -w Enable CLI to print additional logs for debugging [default: False]
--token <token> Authentication token Yes --token $VDC_TOKEN

Usage Examples

Basic Submission

# Using alias (recommended)
vdc submit -p validation-team -f main -n IFWI_NVL -v 2024WW15.1 --packageFile ./build/ifwi-nvl.zip --token $VDC_TOKEN

# Using full command name
vdc ingredient-release submit -p validation-team -f main -n IFWI_NVL -v 2024WW15.1 --packageFile ./build/ifwi-nvl.zip --token $VDC_TOKEN

# With mixed short and long parameters
vdc submit --project validation-team -f main -n IFWI_NVL --version 2024WW15.1 --packageFile ./build/ifwi-nvl.zip --token $VDC_TOKEN

Wait for Processing

# Submit and wait for processing to complete
vdc submit -p validation-team -f main -n IFWI_NVL -v 2024WW15.1 --packageFile ./build/ifwi-nvl.zip --wait --token $VDC_TOKEN

Multiple Package Files

# Submit release with multiple packages
vdc submit -p validation-team -f main -n UNIFIED_PATCH -v 1.2.3 \
  --packageFile ./patches/core.inc \
  --packageFile ./patches/security.inc \
  --packageFile ./patches/performance.inc \
  --token $VDC_TOKEN

Verbose Logging

# Detailed logging for debugging
vdc submit -p validation-team -f main -n BIOS_DMR -v A0_drop4 --packageFile ./bios-dmr-a0-drop4.bin --verbose --token $VDC_TOKEN

Metadata File Format

The metadata file is a JSON document that describes release properties, dependencies, and associated information.

Complete Metadata Example

{
    "Description": "Initial release candidate",
    "BaseLine": {
      "ProjectName": "12345",
      "FeedName": "12345",
      "Name": "12345",
      "Version": "12345"
    },
    "ReleaseDate": "2023-10-01T12:00:00Z", //This is optional. Default value is current time. Use this for legacy versions.
    "Dependencies": [
      {
        "ProjectName": "ProjectA",
        "FeedName": "FeedA",
        "Name": "DependencyA",
        "Version": "1.0.0"
      },
      {
        "ProjectName": "ProjectB",
        "FeedName": "FeedB",
        "Name": "DependencyB",
        "Version": "2.0.0"
      }
    ],
    "Milestones" : ["A", "B"],
    //IFWI custom metadata 
    "Straps": [ 
        {
          "name": "strapName1",
          "value": "strapValue1"
        },
        {
          "name": "strapName2",
          "value": "strapValue2"
        }
      ],
      "Knobs": {
        "valueAsString": true,
        "data": [
          {
            "Name": "knobValue1",
            "Value": "knobValue2"
          }
        ]
      },
      "FitToolId": {
        "name": "FifTool",
        "version": "1.0.0"
      }
  }

Metadata Fields Reference

Field Type Required Description
Description string No Human-readable release description
BaseLine object No Reference to baseline release
ReleaseDate string (ISO 8601) No Release timestamp (defaults to current time)
Dependencies array No List of dependent ingredient releases
Milestones array No Associated silicon milestones

Error Handling

Common Error Scenarios

Ingredient Not Found

# Error: Ingredient doesn't exist
# Solution: Create ingredient first or verify project/feed/name
vdc ingredient get -p myproject -f main -n myingredient --token $VDC_TOKEN

Version Already Exists

# Error: Release version already submitted
# Solution: Use different version or check existing releases
vdc ingredient get -p myproject -f main -n myingredient --token $VDC_TOKEN

Package File Not Found

# Error: Package file doesn't exist
# Solution: Verify file path and ensure build completed
ls -la ./build/package.zip

Invalid Metadata Format

# Error: JSON syntax error in metadata file
# Solution: Validate JSON format
cat metadata.json | jq '.'  # Should not error


Next Steps

After Submission

Advanced Usage

Integration and Automation