Skip to content
This repository has been archived by the owner on Dec 9, 2022. It is now read-only.

Fix typos in Readme #72

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# A Collection of GitHub Actions That Facilitate MLOps

Materials that accompany the talk [MLOps with GitHub Actions & Kubernetes](https://youtu.be/Ll50l3fsoYs)
Materials that accompany the talk [MLOps with GitHub Actions & Kubernetes](https://youtu.be/Ll50l3fsoYs).

## A Collection Of GitHub Actions That Enable MLOps and CI/CD For Machine Learning:

Expand All @@ -11,17 +11,17 @@ Below is a collection of GitHub Actions that we are curating or building that fa


### 2. Submitting Argo workflows
[Argo](https://argoproj.github.io/) allows you to orechestrate machine learning pipelines that run on Kubernetes.
[Argo](https://argoproj.github.io/) allows you to orchestrate machine learning pipelines that run on Kubernetes.

- [Action: Submit Argo Workflows on GKE](https://github.com/marketplace/actions/submit-argo-workflows-to-gke) - leverages the gcloud cli to authenticate to your GKE cluster and submit argo workflows.
- [Action: Submit Argo Workflows on K8s (Cloud agnostic)](https://github.com/marketplace/actions/submit-argo-workflows-from-github) - requires that you supply a kubeconfig file to authenticate to your k8 cluster.
- [Action: Submit Argo Workflows on GKE](https://github.com/marketplace/actions/submit-argo-workflows-to-gke) - leverages the gcloud CLI to authenticate to your GKE cluster and submit Argo Workflows.
- [Action: Submit Argo Workflows on K8s (Cloud agnostic)](https://github.com/marketplace/actions/submit-argo-workflows-from-github) - requires that you supply a kubeconfig file to authenticate to your K8s cluster.

### 3. Query Experiment Tracking Results
- [Action: Fetch runs from Weights & Biases](https://github.com/marketplace/actions/get-runs-from-weights-biases) - W&B is an experiment tracking and logging system for machine learning, and is free for open source projects.

### 4. Publish Docker Images
- [Action: Publish Container To The GitHub Package Registry](https://github.com/marketplace/actions/publish-docker-images-to-gpr). See this [doc](https://github.com/features/package-registry) on more information on the GitHub Package Registry
- [Action: Publish Container To a Generic Registry](https://github.com/marketplace/actions/publish-docker)
- [Action: Publish Container To The GitHub Package Registry](https://github.com/marketplace/actions/publish-docker-images-to-gpr). See this [doc](https://github.com/features/package-registry) on more information on the GitHub Package Registry.
- [Action: Publish Container To a Generic Registry](https://github.com/marketplace/actions/publish-docker).

### 5. Compile and Push Pipeline to Kubeflow
- [Action: To compile, deploy and run Kubeflow pipeline](https://github.com/marketplace/actions/kubeflow-compile-deploy-and-run). This action allows you to instantiate [Kubeflow pipelines](https://www.kubeflow.org/docs/pipelines/overview/pipelines-overview/) from GitHub directly.
Expand Down Expand Up @@ -59,9 +59,9 @@ View the demo pull request [here](https://github.com/machine-learning-apps/actio
## Explanation of Files In This Repo:

- **.github/workflows/**
- **chatops.yaml**: This workflow files handles two different scenarios (1) when I want to execute a full model run with the command `/run-full-test` and (2) when I want to deploy a model using the chatops command `/deploy <run_id>`. Note that you do not need to use chatops for your workflow, this was just the author's preferred way of triggering items. You can use one of the many other [events that can trigger](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows) Actions. Furthermore, these chatops commands uses a pre-defined action [machine-learning-apps/actions-chatops@master](https://github.com/marketplace/actions/chatops-for-pull-requests) that performs an Action by authenticating another GitHub app. The steps taken in this workfow trigger either the workflow defined in `ml-cicd.yaml` or `deploy.yaml`.
- **ml-cicd.yaml**: This workflow is triggered by the chatops command `/run-full-test` from events that occur in the `chatoops.yaml` file. This executes the full training run of the model.
- **deploy.yaml**: This workflow is triggered by the chatops command `/deploy <run_id>`. This workflow fetches the appropriate model artificacts associated with the `<run_id>` from the experiment tracking system (which is Weights & Biases in this case), and deploys this model using Google Cloud Functions.
- **chatops.yaml**: This workflow handles two different scenarios (1) when I want to execute a full model run with the command `/run-full-test` and (2) when I want to deploy a model using the ChatOps command `/deploy <run_id>`. Note that you do not need to use ChatOps for your workflow, this was just the author's preferred way of triggering items. You can use one of the many other [events that can trigger](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows) Actions. Furthermore, these ChatOps commands uses a pre-defined action [machine-learning-apps/actions-chatops@master](https://github.com/marketplace/actions/chatops-for-pull-requests) that performs an Action by authenticating another GitHub app. The steps taken in this workflow trigger either the workflow defined in `ml-cicd.yaml` or `deploy.yaml`.
- **ml-cicd.yaml**: This workflow is triggered by the ChatOps command `/run-full-test` from events that occur in the `chatops.yaml` file. This executes the full training run of the model.
- **deploy.yaml**: This workflow is triggered by the ChatOps command `/deploy <run_id>`. This workflow fetches the appropriate model artifacts associated with the `<run_id>` from the experiment tracking system (which is Weights & Biases in this case), and deploys this model using Google Cloud Functions.
- **repo-dispatch.yaml**: This workflow is triggered at the end of the Argo Workflow created in the step `Submit Argo Deployment` in `ml-cicd.yaml`. [The terminal nodes](https://github.com/machine-learning-apps/actions-ml-cicd/blob/master/pipelines/workflow.yaml#L91-L162) of the Argo workflow creates a [repository dispatch](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#external-events-repository_dispatch) event which triggers this workflow.
- **see-payload.yaml & see_token.yaml** - these files were used for debugging and can be safely ignored.
- **/action_files**: these are a collection of shell scripts and python files that are run at various steps in the workflow files mentioned above.
Expand All @@ -71,6 +71,6 @@ View the demo pull request [here](https://github.com/machine-learning-apps/actio

The example in this repo is end-to-end and requires familiarity with Kubernetes and GitHub Actions to fully understand. When starting out, we recommend automating one part of your workflow, such as deploying models. As you learn more about the syntax of GitHub Actions you can increase the scope of your workflow as appropriate.

We also encourage you to [make GitHub Actions for others to use](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/publishing-actions-in-github-marketplace) to accomodate other tools.
We also encourage you to [make GitHub Actions for others to use](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/publishing-actions-in-github-marketplace) to accommodate other tools.

For any questions, please open an issue in this repo.