Hi,
I spent the last few weeks automating my plugin distribution and I thought it would be great to share it with the community!
The steps and code below can automatically:
- Export VST, VST3, AU in a CI/CD pipeline
- Relink Csound so end users don’t have to install Csound on their machine
- Codesign the VST, VST3 and AU exports
- Create installers (including Presets/ folder), and synthesize the installers into a single .pkg file that will install every file at the right place and make sure the Presets folder has read/write rights
- Codesign and notarize the installer
These steps were well explained in Rory’s tutorials, but I wanted to automate the process because my first plugin was very hard to maintain due to the complexity of the MacOS process and the need to support multiple OS (Windows and MacOS).
Please note these steps are for MacOS only for now, but I’ll edit this message to add Windows support as well in the future.
I am currently using Azure Pipeline to export and distribute my plugins, but these steps could be useful for GitHub Actions as well.
Environment setup
You need an Azure Devops account. The free tier account is quite generous so it’s a great way to start without having to spend any money on the tooling.
You also need a Developer ID Certificate, steps here:
Once you have your developer certificate, upload it in the Pipeline Library.
Make sure you also store your passwords here.
Once these variables/files are stored, your pipeline should be ready and you can switch to the next step.
Code
Since the files are quite massive, I decided to upload them in this repository: https://github.com/julienbeisel/cabbage_distribution/tree/main
They are not “ready to use” as you need to edit the fields and replace a few things:
- Make sure you use your developer ID details (email, password, team id) and replace the dummy variable names in these files
- This pipeline is used for my upcoming plugin called AudioShaper2, released by my company Nymano Audio. You can replace these values by your plugin/company name.
- Make sure the paths I use are the one you’d like to use as well (eg: Presets are in the Music/ folder)
You can then use the files provided in the Github repo to run your Pipeline.
If there are no issues, the pipeline should be able to produce this artifact:
This process is quite complex, so feel free to ask me any questions if you need some help. I will edit this message when I improve the workflow to make sure the latest scripts are available here.
Next step for me: Add Windows export support (I need to find a Windows machine first).
I hope these resources will help some of you!
Julien/nymano