This post assumes that you have a bit of previous experience:
- Previously worked with OTRS5 or OTRS6, at least as administrator
- Experience with Perl5, unit tests
- Some experience with GitLab CI
I will touch on all of the above points as good as I can throughout the post, but I may not go into great detail everywhere.
In OTRS6, add-ons are delivered in
.opm packages. To build these add-ons, an internal function
Kernel::System::Package->PackageBuild() is called.
Alternatively, one can use the console command
Dev::Package::Build, specifying the path to the
.sopm file (which then calls the above function and builds the final
.opm file). To make our developer lives easier, our team has integrated the build process into the GitLab Continuous Integration.
Using CI, after every commit, a package is built from the existing
.sopm file and finally pushed to an internal repository server. From there, we can fetch packages as needed.