Murano Solution Template & Github CICD Integration
Apply coding best practices with good branching automated test & deployment by creating a Murano template for your solution.
Code locally & push to your development branch, get direct feedback from Murano validating your scripting, service configuration & automatically update your solution testing deployment.
Table of Contents
- 1. Create a new repository
- 2. Connect with Murano
- 3. Start coding
- 4. Setup code review & good practices
- 5. Continuous Deployment
- Open-Source Murano templates
- Application vs. IoT-Connector
1. Create a new repository
git clone email@example.com:exosite/getting-started-solution-template.git
master branch includes several examples, files, and services. If you wish to start blank, use the
If you which to make your repository private, download the Getting Started Solution Template (ZIP), un-zip the content in your new repository folder and commit the content.
IMPORTANT Remove the
/services/config.yaml file as it disables auto-deployment.
2. Connect with Murano
Add the Murano-Deploy Github App to your organization.
Then grant access to the repo created in step #1.
3. Start coding
Follow your best practices and create a development branch.
git checkout -b development
Do some modification to your solution code and learn the template structure as documented the Murano Getting started template.
echo "Adding a minor doc change" >> README.md
Then push your changes:
git commit -a -m "First commit" git push origin development
Now go check your commit in your repository, you should see the following status:
Here all is successful in the case you have error a relevant error message would be displayed. You will also see the number of solution instance automatically updated by this change. Currently 0.
4. Setup Code review good practices
While each team has it's own requirement, we suggest you do Code-Review through a Pull request and ensure the status check is successful.
Here is how to enable it:
- Go to your
Github Repo -> Settings -> Branching TabClick 'Add a Rule'
Require pull request reviews before merging
Require status checks to pass before merging
- Save Changes
5. Continuous deployment
Follow the Authoring Exchange element page and input your repository name with the branch. Example:
Then Create a new Application based on your newly created template.
Go through step #3 one more time and you should see 1 solution updated in your Github status.
Note: Any solution can disable auto-update by changing the configuration in the
Open-Source Murano templates
To get you started, have a look at some existing code.
- The getting-started-solution-template the reference of what a template can do.
- Then empty project an empty structure for blank development.
- A full Home-Automation Application example to see how a full Murano app looks like.
IoT-Connector Customization & Cloud-to-Cloud integration
A common use-case is to connect devices or data input from a 3rd party platform into an Exosite Application such as Exosense. Many popular providers are already integrated for you. Just find them on Exosite Exchange IoT-Marketplace.
If your integration is missing you can create your own as we provide a template & tutorial for that purpose with following templates:
- The Cloud-Connector a canvas for integrated a remote service as device data source.
- The Open Weather Cloud-Connector a simple & Plug&Play implementation of the above Cloud-Connector canvas.
Application vs. IoT-Connector
While you can manually specify which micro-services your template is using. A Murano Solution always includes the following default services.
From those will be added depending on if you choose to create an Application or an IoT-Connector.