Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>MettleCI MCIX DevOps for IBM DataStage NextGen
MettleCI MCIX DevOps for IBM DataStage NextGen

MettleCI MCIX DevOps for IBM DataStage NextGen

MettleCI

|
2 installs
| (0) | Free
MettleCI automated static code analysis, dynamic unit testing, and advanced CI/CD deployment and build capabilities for IBM DataStage NextGen on Cloud Pak.
Get it free
⚠️ Warning!
This extension is a pre-release technical preview which may break without warning at any time!

MettleCI for IBM DataStage NextGen

MettleCI's IBM DataStage NextGen DevOps automation toolkit (MCIX) in Azure DevOps pipelines using a deployment and infrastructure-free containerised solution.

This extension provides a set of custom Azure DevOps tasks that wrap the MCIX CLI and run it inside a Docker container, ensuring consistent behaviour across agents and environments.


Requirements

  • A Linux build agent with Docker available
    (Microsoft-hosted Ubuntu agents work out of the box)
  • All input and output paths must be under the agent working directory:
    • $(System.DefaultWorkingDirectory)
    • $(Build.SourcesDirectory)
    • $(Build.ArtifactStagingDirectory)

Quick start

Note that these tasks provide a graphical user interface in Azure DevOps pipelines which will enable you to author CI/CD pipelines for IBM Cloud Pak without needing to be an expert in YAML. The following snippet demonstrates how a task is used in a pipeline.

pool:
  vmImage: 'ubuntu-latest'

stages:
  - stage: Use_MCIX_Tasks
    jobs:
    - job: Demonstrate_MCIX_Tasks
      displayName: "Demonstrate MCIX Tasks"
      steps:
      - checkout: self
      - task: mcixDataStageImport@1
        inputs:
          containerRegistry: 'my-container-service-connection'
          url: 'http://my-cpd.my-organization.com'
          user: 'MyUserName'
          apiKey: '${MySecureApiKey}'
          project: 'MyProject'
          assetsPath: 'datastage'

Tasks

  • MCIX Asset Analysis Test
  • MCIX DataStage Compile
  • MCIX DataStage Deploy
  • MCIX DataStage Import
  • MCIX Overlay Apply
  • MCIX System Version
  • MCIX Unit Test Execute

MCIX Asset Analysis Test

Static code analysis of Cloud Pak assets with optional publication of JUnit results.

YAML example

- task: mcixAssetAnalysisTest@1
  displayName: "MCIX Asset Analysis Test"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    rules: "$(RULES)"
    report: "$(REPORT)"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes Optional container image repository/name
imageTag Yes Optional container image tag
rules Yes Path to the Asset Analysis rules file or directory. Relative paths are resolved from $(Build.SourcesDirectory).
report Yes Path for the generated report file. XML reports can be published as JUnit test results. Relative paths are resolved from $(Build.SourcesDirectory).
path No Local asset path for file-based analysis. Mutually exclusive with URL. Relative paths are resolved from $(Build.SourcesDirectory).
url No Cloud Pak for Data URL. Mutually exclusive with Asset path
user No CP4D username. Required when CP4D URL is supplied
apiKey No CP4D API key. Required when CP4D URL is supplied
project No CP4D project name. Supply either Project name or Project ID
projectId No CP4D project ID. Supply either Project ID or Project name
includeTags No Optional include tags. Newline, comma, or whitespace separated
excludeTags No Optional exclude tags. Newline, comma, or whitespace separated
ignoreTestFailures No Do not fail the task because some tests failed
includeAssetInTestName No Include the asset name in generated test names
testSuite No Optional JUnit test suite name
additionalArgs No Additional raw arguments to append to the mcix command

MCIX DataStage Compile

Compilation of DataStage assets in a specified Cloud Pak project

YAML example

- task: mcixDataStageCompile@1
  displayName: "MCIX DataStage Compile"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    report: "$(REPORT)"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes The name of the MCIX Docker image to use for compilation
imageTag Yes The tag of the MCIX Docker image to use for compilation
url Yes The base URL for the CP4D instance
user Yes The username for the CP4D instance
apiKey Yes The API key for the CP4D instance
project No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
projectId No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
report Yes Path to the JUnit report file. Relative paths are resolved from $(Build.SourcesDirectory)
includeAssetInTestName No Whether to include the asset name in the JUnit test report name
additionalArgs No Additional arguments to enable diagnostics or try preview features

MCIX DataStage Deploy

Deployment of DataStage assets to a Cloud Pak project

YAML example

- task: mcixDataStageDeploy@1
  displayName: "MCIX DataStage Deploy"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    assets: "$(ASSETS)"
    overlays: |
            path/one
            path/two
    output: "$(OUTPUT)"
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    report: "$(REPORT)"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes The name of the MCIX Docker image to use for compilation
imageTag Yes The tag of the MCIX Docker image to use for compilation
assets Yes Path to DataStage export (.zip) or directory to apply overlays to. Relative paths are resolved from $(Build.SourcesDirectory)
overlays Yes One overlay directory per line. Applied in order. Relative paths are resolved from $(Build.SourcesDirectory)
properties No Optional properties file with replacement values. Relative paths are resolved from $(Build.SourcesDirectory)
output Yes Zip file or directory to write updated assets. Relative paths are resolved from $(Build.SourcesDirectory)
url Yes The base URL for the CP4D instance
user Yes The username for the CP4D instance
apiKey Yes The API key for the CP4D instance
project No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
projectId No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
report Yes Path to the compile JUnit report file. Relative paths are resolved from $(Build.SourcesDirectory)
includeAssetInTestName No Whether to include the asset name in the JUnit test report name
overlayAdditionalArgs No Additional arguments to enable diagnostics or try preview features with the overlay operation
importAdditionalArgs No Additional arguments to enable diagnostics or try preview features with the import operation
compileAdditionalArgs No Additional arguments to enable diagnostics or try preview features with the compile operation

MCIX DataStage Import

Import of DataStage assets into a specified Cloud Pak project

YAML example

- task: mcixDataStageImport@1
  displayName: "MCIX DataStage Import"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    assetsPath: "$(ASSETSPATH)"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes MCIX Docker image name
imageTag Yes MCIX Docker image tag
url Yes url: The base URL for the CP4D instance.
user Yes user: The username for the CP4D instance.
apiKey Yes api-key: The API key for the CP4D instance.
project No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID.
projectId No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID.
assetsPath Yes assets: The path to the assets for the DataStage project.
additionalArgs No Additional arguments to enable diagnostics or try preview features.

MCIX Overlay Apply

Modification of file assets to apply environment-specific values

YAML example

- task: mcixOverlayApply@1
  displayName: "MCIX Overlay Apply"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    assets: "$(ASSETS)"
    output: "$(OUTPUT)"
    overlays: |
            path/one
            path/two

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes Container image repository/name
imageTag Yes Ignored if imageName already includes a tag or digest
assets Yes Path to DataStage export (.zip) or directory to apply overlays to. Relative paths are resolved from $(Build.SourcesDirectory)
output Yes Zip file or directory to write updated assets. Relative paths are resolved from $(Build.SourcesDirectory)
overlays Yes One overlay directory per line. Applied in order. Relative paths are resolved from $(Build.SourcesDirectory)
properties No Optional properties file with replacement values. Relative paths are resolved from $(Build.SourcesDirectory)
overlayAdditionalArgs No Additional arguments to enable diagnostics or try preview features with the overlay operation

MCIX System Version

Retrieve details on the MCIX container providing DataStage CI/CD capabilities for IBM Software Hub (Cloud Pak)

YAML example

- task: mcixSystemVersion@1
  displayName: "MCIX System Version"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes Container image repository/name.
imageTag Yes Ignored if imageName already includes a tag or digest.
additionalArgs No Additional arguments to enable diagnostics or try preview features.

MCIX Unit Test Execute

Unit testing of DataStage assets in a specified Cloud Pak project

YAML example

- task: mcixUnitTestExecute@1
  displayName: "MCIX Unit Test Execute"
  inputs:
    imageName: "imageName-value"
    imageTag: "imageTag-value"
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    report: "$(REPORT)"

Inputs

Input Required Description
containerRegistry No Optional. Required only for private registries
imageName Yes Docker image containing the mcix CLI
imageTag Yes Docker tag to use (e.g. 1.0.204)
url Yes Base URL of CP4D/CP4DaaS (e.g. https://cpd.example.com)
user Yes Username for CP4D/CP4DaaS
apiKey Yes CP4D/CP4DaaS API key (stored securely by Azure DevOps)
project No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
projectId No For CP4D/CP4DaaS analysis, specify exactly one of Project or Project ID
report Yes JUnit report file path to write (.xml). Must be inside the agent working directory
testSuite No The test suite name for this invocation of unit testing
maxConcurrency No Maximum number of concurrently executing test case jobs to run
ignoreTestFailures No Returns zero when testing completes regardless of failures
additionalArgs No Additional arguments passed to mcix unit-test execute (whitespace separated)

Troubleshooting

Docker image pull fails (401 / 403) If using a private container registry, authenticate earlier in the job (for example with the built-in Docker@2 login task).


© 2025-2026 Data Migrators Pty Ltd. All rights reserved.

Data Migrators policy documents

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft