The O-RAN-SC project uses PackageCloud.io repositories to publish binary artifacts like including Debian (.deb) and RPM Package Manager (.rpm) packages.
For complete details on using PackageCloud please see their documentation: https://packagecloud.io/docs
Repositories
The following O-RAN-SC repositories are defined at PackageCloud:
- o-ran-sc/master - development builds pushed manually; used as a sandbox only.
- o-ran-sc/staging - release candidate builds, pushed automatically by Jenkins
- o-ran-sc/release - released versions, created manually by the Linux Foundation release engineering team..
Creating and Pushing Packages
In O-RAN-SC the Continuous Integration (CI) system Jenkins is configured with jobs that create and push packages to PackageCloud. At present these jobs all use the following design:
- Define build steps in a Dockerfile to create package files within the running Docker image
- Define an entrypoint command (a shell script) that copies all package files to a specified directory
- Launch the image so the entrypoint command runs and the package files are copied to a mounted volume
- Run a Ruby script "packagecloud_push" to publish the package files to the PackageCloud site
Note that a package file can only be published exactly once - the PackageCloud site blocks overwriting of existing files.
Installing Packages
Package files Files can be downloaded and installed manuallyfrom the command line. For example, here's how to install a recent version of the RMr library in a Dockerfile using an Debian/Ubuntu base:
...