This repository contains a sample project using CML to provision and launch a small EC2 instance and run a machine learning workflow on the instance:
- GitHub will deploy a runner machine and setup CML with the
setup-CMLGitHub Action - The workflow uses
cml-runnerto provision and launch at2.microinstance on AWS EC2 - The new
t2.microinstance runs a workflow to pull a Docker container, install Python package requirements, and train ascikitlearnmodel. - CML returns a summary of the model accuracy and a confusion matrix as a comment in your Pull Request.
The key file enabling these actions is .github/workflows/cml.yaml.
In this example, .github/workflows/cml.yaml contains three environmental variables that are stored as repository secrets.
| Secret | Description |
|---|---|
| PERSONAL_ACCESS_TOKEN | You must create a personal access token with repository and workflow permissions. |
| AWS_ACCESS_KEY_ID | AWS credential for accessing S3 storage |
| AWS_SECRET_ACCESS_KEY | AWS credential for accessing S3 storage |
The cml-runner function currently works with AWS and Azure cloud service providers. For Azure, you'll want to substitute the AWS secrets for Azure's credential variables.