Here, we'll walk through a tutorial to start using CML. For simplicity, we'll show the demo in Bitbucket Pipelines, but instructions are pretty similar for all the supported CI systems.
Fork our example project repository.
The following steps can all be done in the Bitbucket browser interface. However, to follow along the commands, we recommend cloning your fork to your local workstation:
git clone https://bitbucket.org/<your-username>/example-cml
⚠️ Follow these instructions to configure a Bitbucket token for CML.
⚠️ Follow these instructions to enable the Pull Request Commit Links application.
To create a CML workflow, copy the following into a new file on your main
branch, bitbucket-pipelines.yml
:
image: iterativeai/cml:0-dvc2-base1
pipelines:
default:
- step:
name: Train model
script:
- pip install -r requirements.txt
- python train.py
- cat metrics.txt > report.md
- cml-publish plot.png --md >> report.md
- cml-send-comment report.md
In your text editor of choice, edit line 15 of train.py
to depth = 12
.
Commit and push the changes:
git checkout -b experiment
git add . && git commit -m "modify forest depth"
git push origin experiment
In Bitbucket, create a Pull Request to compare the experiment
branch to
master
.
Shortly, you should see a comment from your user appear in the Pull Request
with your CML report. This is a result of the cml send-comment
command in
your workflow.
This is the gist of the CML workflow: when you push changes to your Bitbucket
repository, the workflow in your bitbucket-pipelines.yml
file gets run and a
report generated.
CML commands let you display relevant results from the workflow, like model performance metrics and vizualizations, in Bitbucket checks and comments. What kind of workflow you want to run, and want to put in your CML report, is up to you.
An example of what your repository should look like now can be found at
iterative-ai/cml-base-case
.