Continuous Machine Learning (CML) is an open-source library for implementing continuous integration & delivery (CI/CD) in machine learning projects. Use it to automate parts of your development workflow, including machine provisioning; model training and evaluation; comparing ML experiments across your project history, and monitoring changing datasets.
The iterative/setup-cml can be used as a GitHub Action to provide CML functions in your workflow. The action allows users to install CML without using the CML Docker container.
This action gives you:
- Access to all CML functions.
For example:
cml comment createfor publishing data visualization and metrics from your CI workflow as comments in a pull request.cml pr createto open a pull request.cml runner launch, a function that enables workflows to provision cloud and on-premise computing resources for training models.
- The freedom 🦅 to mix and match CML with your favorite data science tools and environments.
Note that CML does not include DVC and its dependencies (see the Setup DVC Action).
v1 of setup-cml was a wrapper around a set of npm installs. v2 installs CML from its
pre-packaged binaries. Then attempts to run npm install --global canvas@2 vega@5 vega-cli@5 vega-lite@5
if you do not wish to install these tools pass vega: false to the action.
link to v1
This action is tested on ubuntu-latest, macos-latest and windows-latest.
Basic usage:
steps:
- uses: actions/checkout@v3
- uses: iterative/setup-cml@v2A specific version can be pinned to your workflow.
steps:
- uses: actions/checkout@v3
- uses: iterative/setup-cml@v2
with:
version: 'v0.18.1'Without vega tools
steps:
- uses: actions/checkout@v3
- uses: iterative/setup-cml@v2
with:
version: 'v0.20.0'
vega: falseThe following inputs are supported.
version- (optional) The version of CML to install (e.g. '0.18.1'). Defaults tolatestfor the most recent CML release.vega- (optional) Whether to install vega dependencies. Defaults totrue. runs commandnpm install --global canvas@2 vega@5 vega-cli@5 vega-lite@5

Assume that we have a machine learning script, train.py which outputs an image
plot.png:
steps:
- uses: actions/checkout@v2
- uses: iterative/setup-cml@v2
- env:
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Can use the default token for most functions
run: |
python train.py --output plot.png
echo 'My first CML report' > report.md
echo '' >> report.md
cml comment create --publish report.mdIn general GitHub's runner token can be given enough permissions to perform most functions.
When using the cml runner launch command a PAT is required
CML provides several helper functions. See the docs.
To get started after cloning the repo, run npm ci (clean-install).
Before pushing changes or opening a PR run npm run format && npm run lint to
ensure that the code is formatted and linted.
run npm run build to compile the action.
