Binary Repositories at PackageCloud.io
The O-RAN-SC project uses PackageCloud.io repositories to publish binary artifacts 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 can be downloaded and installed from 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:
# Install RMr using debian package hosted at packagecloud.io ARG RMR_VER=1.5.0 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb RUN dpkg -i rmr_${RMR_VER}_amd64.deb RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb
Alternately a repository can be installed for use by the usual tools, for example in Ubuntu via "apt-get". The following command will make the "staging" repository available in an Ubuntu system:
curl -s https://packagecloud.io/install/repositories/o-ran-sc/staging/script.deb.sh | sudo bash