In today’s tech world, CI/CD (Continuous Integration/Continuous Deployment) is crucial for delivering fully tested and up-to-date software or firmware to your customers. This tutorial will guide you through integrating Edge Impulse Studio with GitHub workflows, enabling seamless build and deployment of your Edge Impulse model into your workflow.
Edge Impulse provides a comprehensive REST API for seamless integration with third-party services, allowing for the automation of tasks within Edge Impulse Studio. The GitHub Action we created available here simplifies the process of building and deploying models into your workflow.
This example was adapted from the Edge Impulse Blog - Integrate Your GitHub Workflow with Edge Impulse Studio By Mateusz Majchrzycki.
GitHub repository for your firmware source code.
Edge Impulse project created in the Studio.
Obtain Project ID and API Key
Navigate to your Edge Impulse project in the Studio.
Select "Dashboard" from the left pane, then click on "Keys" at the top.
Note down the Project ID and Project API Key.
Add GitHub Action to Your Workflow
Open your workflow YAML file in your GitHub repository.
Add the following code to your workflow YAML file:
Replace ${{ secrets.PROJECT_ID }} and ${{ secrets.API_KEY }} with your actual Edge Impulse Project ID and API Key.
Extract the Model and SDK
After the build and deployment action, you may want to extract the model and SDK.
Use the following example code in your workflow:
Customize Deployment Type (Optional)
Here's an example of downloading the Arduino library:
Real-world Use Case
Utilize the GitHub Action for CI/CD purposes.
For example, testing public examples to prevent breaking changes.
Here's an example of using the Action with Nordic Semiconductor/Zephyr inference example:
6. Notification for Workflow Errors
Thanks to GitHub Actions notification, the person responsible for the commit that created an error in workflow will be notified.
Integrating Edge Impulse Studio with GitHub workflows enhances your CI/CD pipeline by automating the build and deployment process of your Edge Impulse models. This simplifies the development and testing of firmware, ensuring its accuracy and reliability. GitHub repository for your firmware source code. Edge Impulse project created in the Studio.
By default, the GitHub Action downloads the C++ library. You can customize the deployment type using the deployment_type input parameter. We can use a simple Python script here