# Testing Packaging Workflows ## Building the Docker images: ```bash make images ``` This assumes that the `nvidia-docker` workflow is being tested and that the test packages have been published to the `elezar.github.io` GitHub pages page. These can be overridden using make variables. Valid values for `workflow` are: * `nvidia-docker` * `nvidia-container-runtime` This follows the instructions for setting up the [`nvidia-docker` repostitory](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit). ## Testing local package changes Running: ```bash make local-ubuntu18.04 ``` will build the `ubuntu18.04-amd64` packages for release and launch a docker container with these packages added to a local APT repository. The various `apt` workflows can then be tested as if the packages were released to the `libnvidia-container` experimental repository. The `local-centos8` make target is available for testing the `centos8-x86_64` workflows as representative of `yum`-based installation workflows. ### Example In the `centos8`-based container above we see the following `nvidia-docker2` packages available with the `local-repository` disabled: ```bash $ yum list --showduplicates nvidia-docker2 | tail -2 nvidia-docker2.noarch 2.5.0-1 nvidia-docker nvidia-docker2.noarch 2.6.0-1 nvidia-docker ``` Installing `nvidia-docker2` shows: ```bash $ yum install -y nvidia-docker2 ``` installs the following packages: ```bash $ yum list installed | grep nvidia libnvidia-container-tools.x86_64 1.5.1-1 @libnvidia-container libnvidia-container1.x86_64 1.5.1-1 @libnvidia-container nvidia-container-runtime.x86_64 3.5.0-1 @nvidia-container-runtime nvidia-container-toolkit.x86_64 1.5.1-2 @nvidia-container-runtime nvidia-docker2.noarch 2.6.0-1 @nvidia-docker ``` Note the repositories where these packages were installed from. We now enable the `local-repository` to simulate the new packages being published to the `libnvidia-container` experimental repository and check the available `nvidia-docker2` versions: ```bash $ yum-config-manager --enable local-repository $ yum list --showduplicates nvidia-docker2 | tail -2 nvidia-docker2.noarch 2.6.0-1 nvidia-docker nvidia-docker2.noarch 2.6.1-0.1.rc.1 local-repository ``` Showing the new version available in the local repository. Running: ``` $ yum install nvidia-docker2 Last metadata expiration check: 0:01:15 ago on Fri Sep 24 12:49:20 2021. Package nvidia-docker2-2.6.0-1.noarch is already installed. Dependencies resolved. =============================================================================================================================== Package Architecture Version Repository Size =============================================================================================================================== Upgrading: libnvidia-container-tools x86_64 1.6.0-0.1.rc.1 local-repository 48 k libnvidia-container1 x86_64 1.6.0-0.1.rc.1 local-repository 95 k nvidia-container-toolkit x86_64 1.6.0-0.1.rc.1 local-repository 1.5 M replacing nvidia-container-runtime.x86_64 3.5.0-1 nvidia-docker2 noarch 2.6.1-0.1.rc.1 local-repository 13 k Transaction Summary =============================================================================================================================== Upgrade 4 Packages Total size: 1.7 M ``` Showing that all the components of the stack will be updated with versions from the `local-repository`. After installation the installed packages are shown as: ```bash $ yum list installed | grep nvidia libnvidia-container-tools.x86_64 1.6.0-0.1.rc.1 @local-repository libnvidia-container1.x86_64 1.6.0-0.1.rc.1 @local-repository nvidia-container-toolkit.x86_64 1.6.0-0.1.rc.1 @local-repository nvidia-docker2.noarch 2.6.1-0.1.rc.1 @local-repository ``` Showing that: 1. All versions have been installed from the same repository 2. The `nvidia-container-runtime` package was removed as it is no longer required. The `nvidia-container-runtime` executable is, however, still present on the system: ```bash # ls -l /usr/bin/nvidia-container-runtime -rwxr-xr-x 1 root root 2256280 Sep 24 12:42 /usr/bin/nvidia-container-runtime ```