Backup
Before making any changes to the master branch of your plugin make another branch. This will act as a backup of the state of your plugin before moving to the managed workflow.
Two Rasbats GitHub repos are involved in the managed build.
-
TideFinder_pi (your plugin)
-
plugins (fork of OpenCPN/plugins)
TideFinder_pi
The changes to the plugin files have been [[shown here|CodeChange]]. These are pushed to the Rasbats GitHub repository.
The OpenCPN/plugins fork repository
This Rasbats GitHub repo is a fork of OpenCPN/plugins: https://github.com/opencpn/plugins.
The preparations for this repository are shown [[here|OpenCPN-Plugins-Catalog-and-Github-Integration]].
Building the plugin
Checks
-
Have the environment variables been entered for CircleCI, Travis and Appveyor? [[Environment Variables | https://github.com/Rasbats/managed_plugins/wiki/OpenCPN-Plugins-Catalog-and-Github-Integration#environment-variables]]
[[CircleCI|CircleCI]]
[[Drone|Drone]]
[[Appveyor|Appveyor]]
-
Has a deploy key (with write permissions) been added to your OpenCPN/plugins fork repo? [[Github deploy key|OpenCPN-Plugins-Catalog-and-Github-Integration#providing-the-link-to-your-opencpnplugins-fork]]
-
Are the Cloudsmith repos ready to receive your builds?
[[Cloudsmith|Cloudsmith]]
Building
When the changes have been made to the plugin it is a good idea to make an untagged build. The builds will arrive in the Cloudsmith opencpn/tidefinder-alpha repository. The plugin can be tested for functionality by using the Import plugin… button in OpenCPN.
The untagged build metadata files are not pushed to the auto branch of your GitHub OpenCPN/plugins fork repo.
Now a tagged beta build can be made. The tag name needs to include the word 'beta'. For example 'v1.2.5-beta' This build pushes the plugin tarballs and metadata xml files to Cloudsmith opencpn/tidefinder-beta. At the same time the metadata files are pushed to the auto branch of your GitHub OpenCPN/plugins fork repo.
The beta build can be tested in the same way as the experimental untagged version. Use the Import plugin… button in OpenCPN.
When you want the plugin to be added to the master catalog another tagged build is made. The tag name must not contain 'beta'. For example 'v1.2.5'. The source code for tagged builds, either beta or production ends up in GitHub TideFinder repo tag pages. The reason for using untagged builds initially is to avoid cluttering up this part of your GitHub repo. Unwanted tags can be removed [[using this technique|Useful Stuff]].