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

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 YAML snippet demonstrates usage in a pipeline.

pool:
  vmImage: 'ubuntu-latest'

stages:
  - stage: Use_MCIX_Tasks

    jobs:
    - job: Demonstrate_MCIX_Tasks
      displayName: "Demonstrate MCIX Tasks"
      steps:

      - checkout: self

      # This is requried in every stage of a Azure DevOps pipeline using Microsoft-hosted agents 
      # to provide access to a Docker container registery via a secure service connections.  
      - task: Docker@2
        displayName: "Login to container registry"
        inputs:
          command: login
          containerRegistry: 'my-container-service-connection'

      # This first task is optional, but useful to verify the MCIX container is accessible 
      # and also has the side-effect of pulling the container image (used by subsequent mcix
      # tasks) early in the job.
      - task: mcixSystemVersion@1
        displayName: "Verify container version"
        inputs: {}

      - task: mcixDatastageImport@1
        inputs:
          url: 'http://my-cpd.my-organization.com'
          user: 'MyUserName'
          apiKey: '${MySecureApiKey}'
          project: 'MyProject'
          assetsPath: '$(Build.SourcesDirectory)/datastage'

      - task: mcixDatastageCompile@1
        inputs:
          url: 'http://my-cpd.my-organization.com'
          user: 'MyUserName'
          apiKey: '${MySecureApiKey}'
          project: 'MyProject'
          report: 'report.xml'
          includeAssetInTestName: true

Tasks

  • MCIX Asset Analysis Test
  • MCIX DataStage Compile Task
  • MCIX DataStage Import Task
  • MCIX Ovelay Apply Task
  • MCIX System Version Task
  • MCIX Unit Test Execute

MCIX Asset Analysis Test

Runs mcix asset-analysis test inside the MCIX container image and optionally publishes JUnit results.

YAML example

- task: mcixAssetAnalysisTest@1
  displayName: "MCIX Asset Analysis Test"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest
    rules: "$(RULES)"
    report: "$(REPORT)"

Inputs

Input Required Description
imageName No Docker image containing the mcix CLI.
imageTag No Docker tag to use (e.g. 1.0.204).
url No Base URL of CP4D/CP4DaaS (e.g. https://cpd.example.com).
user No Username for CP4D/CP4DaaS.
apiKey No 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.
rules Yes Location of the asset analysis rule files (directory). Must be inside the agent working directory.
report Yes Report file path to write. Use .xml to publish as JUnit results. Must be inside the agent working directory.
path No Location of project export zip file or directory for file-based analysis. Must be inside the agent working directory.
includeTags No Tags of asset analysis rules to include (case insensitive). Separate by newline, comma, or space. Includes everything by default.
excludeTags No Tags of asset analysis rules to exclude (case insensitive). Separate by newline, comma, or space.
ignoreTestFailures No Returns zero when testing completes regardless of failures.
includeAssetInTestName No Test case names will include the asset name in the JUnit report.
testSuite No Only required if running this command multiple times for the same project.
additionalArgs No Additional arguments passed to mcix asset-analysis test (whitespace separated).

MCIX DataStage Compile Task

Runs MCIX DataStage Compile using the official MettleCI container image

YAML example

- task: mcixDatastageCompile@1
  displayName: "MCIX DataStage Compile Task"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    report: "$(REPORT)"

Inputs

Input Required Description
imageName No MCIX Docker image name
imageTag No 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.
report Yes report: The path to the JUnit report file.
includeAssetInTestName No include-asset-in-test-name: Whether to include the asset name in the test name.
additionalArgs No Additional arguments to enable diagnostics or try preview features.

MCIX DataStage Import Task

Runs MCIX DataStage Import using the official MettleCI container image

YAML example

- task: mcixDatastageImport@1
  displayName: "MCIX DataStage Import Task"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    assetsPath: "$(ASSETSPATH)"

Inputs

Input Required Description
imageName No MCIX Docker image name
imageTag No 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 Ovelay Apply Task

Runs MCIX Ovelay Apply using the official MettleCI container image

YAML example

- task: mcixDatastageImport@1
  displayName: "MCIX Ovelay Apply Task"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest
    assets: "$(ASSETS)"
    output: "$(OUTPUT)"
    overlays: |
            path/one
            path/two

Inputs

Input Required Description
imageName No Container image repository/name.
imageTag No Ignored if imageName already includes a tag or digest.
assets Yes Path to DataStage export zip file or directory.
output Yes Zip file or directory to write updated assets.
overlays Yes One overlay directory per line. Applied in order.
properties No Optional properties file with replacement values.
additionalArgs No Extra mcix CLI arguments appended verbatim (supports quotes).

MCIX System Version Task

Runs MCIX System Version using the official MettleCI container image

YAML example

- task: mcixSystemVersion@1
  displayName: "MCIX System Version Task"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest

Inputs

Input Required Description
imageName No MCIX Docker image name
imageTag No MCIX Docker image tag
additionalArgs No Additional arguments to enable diagnostics or try preview features.

MCIX Unit Test Execute

Runs mcix unit-test execute inside the MCIX container image and publishes JUnit results.

YAML example

- task: mcixUnitTestExecute@1
  displayName: "MCIX Unit Test Execute"
  inputs:
    imageName: datamigrators.azurecr.io/datamigrators/mcix
    imageTag: latest
    url: "url-value"
    user: "user-value"
    apiKey: "apiKey-value"
    report: "$(REPORT)"

Inputs

Input Required Description
imageName No Docker image containing the mcix CLI.
imageTag No 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

“Path must be under the agent working directory” Ensure all input and output paths resolve under one of:

  • $(System.DefaultWorkingDirectory)
  • $(Build.SourcesDirectory)
  • $(Build.ArtifactStagingDirectory)

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