Switch native_full_build container to ubuntu:22.04#186
Switch native_full_build container to ubuntu:22.04#186scthunderbolt wants to merge 7 commits intodevelopfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request updates the CI/CD workflow to use a standard Ubuntu 22.04 container instead of the custom ghcr.io/rdkcentral/docker-rdk-ci:latest image. To compensate for dependencies that were previously bundled in the custom image, the PR adds explicit installation of Python 3, pip, CMake, and CUnit libraries to the build_dependencies.sh script.
Changes:
- Switch GitHub Actions container from custom docker-rdk-ci image to ubuntu:22.04
- Add explicit installation of python3, python3-pip, cmake, and libcunit packages
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/native_full_build.yml | Simplified container specification to use ubuntu:22.04 |
| build_dependencies.sh | Added installation commands for dependencies previously provided by docker-rdk-ci image |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
build_dependencies.sh
Outdated
| apt install -y python3 | ||
| apt install -y python3-pip | ||
| apt install -y cmake | ||
| apt install -y libcunit1 libcunit1-doc libcunit1-dev | ||
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
Multiple separate apt install commands are inefficient as each invocation updates the package database. Combine these into a single apt install command to reduce installation time and improve build performance.
| apt install -y python3 | |
| apt install -y python3-pip | |
| apt install -y cmake | |
| apt install -y libcunit1 libcunit1-doc libcunit1-dev | |
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc | |
| apt install -y python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
build_dependencies.sh
Outdated
| apt install -y git | ||
| apt install -y python3 | ||
| apt install -y python3-pip | ||
| apt install -y cmake | ||
| apt install -y libcunit1 libcunit1-doc libcunit1-dev | ||
| apt install -y libcurl4-openssl-dev | ||
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
Multiple separate apt install commands are inefficient as each invocation runs dependency resolution and package installation separately. Combine these into a single apt install command to improve build performance and reduce script execution time.
| apt install -y git | |
| apt install -y python3 | |
| apt install -y python3-pip | |
| apt install -y cmake | |
| apt install -y libcunit1 libcunit1-doc libcunit1-dev | |
| apt install -y libcurl4-openssl-dev | |
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc | |
| apt install -y git python3 python3-pip cmake \ | |
| libcunit1 libcunit1-doc libcunit1-dev \ | |
| libcurl4-openssl-dev \ | |
| ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev \ | |
| gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
build_dependencies.sh
Outdated
| apt install -y libcunit1 libcunit1-doc libcunit1-dev | ||
| apt install -y libcurl4-openssl-dev | ||
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc | ||
| pip install jsonref |
There was a problem hiding this comment.
Using pip without specifying python3 is deprecated in Ubuntu 22.04 and may fail or use the wrong Python version. Change this to 'pip3 install jsonref' to explicitly use Python 3's pip.
| pip install jsonref | |
| pip3 install jsonref |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
build_dependencies.sh
Outdated
| apt install -y git python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev libcurl4-openssl-dev | ||
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
The long list of packages on a single line reduces readability. Consider splitting this into multiple lines using backslash continuation or separate apt install commands for better maintainability. This would make it easier to review, modify, and understand which categories of dependencies are being installed.
| apt install -y git python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev libcurl4-openssl-dev | |
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc | |
| apt install -y \ | |
| git \ | |
| python3 \ | |
| python3-pip \ | |
| cmake \ | |
| libcunit1 \ | |
| libcunit1-doc \ | |
| libcunit1-dev \ | |
| libcurl4-openssl-dev | |
| apt install -y \ | |
| ninja-build \ | |
| meson \ | |
| curl \ | |
| libsoup2.4-dev \ | |
| libxml2-dev \ | |
| libglib2.0-dev \ | |
| gobject-introspection \ | |
| libgirepository1.0-dev \ | |
| libgtk-3-dev \ | |
| valac \ | |
| pandoc |
build_dependencies.sh
Outdated
| apt update | ||
| apt install -y git python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev libcurl4-openssl-dev | ||
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
When using apt in non-interactive environments like Docker/CI, it's recommended to use 'apt-get' instead of 'apt' for better stability and to avoid warnings. The apt command is intended for interactive use and may change behavior between versions. Consider using 'apt-get update' and 'apt-get install -y' instead.
| apt update | |
| apt install -y git python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev libcurl4-openssl-dev | |
| apt install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc | |
| apt-get update | |
| apt-get install -y git python3 python3-pip cmake libcunit1 libcunit1-doc libcunit1-dev libcurl4-openssl-dev | |
| apt-get install -y ninja-build meson curl libsoup2.4-dev libxml2-dev libglib2.0-dev gobject-introspection libgirepository1.0-dev libgtk-3-dev valac pandoc |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -9,9 +9,28 @@ cd ${GITHUB_WORKSPACE} | |||
| # # ############################# | |||
| #1. Install Dependencies and packages | |||
|
|
|||
There was a problem hiding this comment.
Consider setting DEBIAN_FRONTEND=noninteractive before running apt-get commands to prevent interactive prompts during package installation in CI environments. This can be done by adding export DEBIAN_FRONTEND=noninteractive before the apt-get commands or by prefixing the commands with the environment variable.
| export DEBIAN_FRONTEND=noninteractive |
| apt-get install -y \ | ||
| git \ | ||
| python3 \ | ||
| python3-pip \ | ||
| cmake \ | ||
| libcunit1 \ | ||
| libcunit1-doc \ | ||
| libcunit1-dev \ | ||
| libcurl4-openssl-dev \ | ||
| ninja-build \ | ||
| meson \ | ||
| curl \ | ||
| libsoup2.4-dev \ | ||
| libxml2-dev \ | ||
| libglib2.0-dev \ | ||
| gobject-introspection \ | ||
| libgirepository1.0-dev \ | ||
| libgtk-3-dev \ | ||
| valac \ | ||
| pandoc |
There was a problem hiding this comment.
The build-essential package (or at minimum make and g++) is missing from the package installation list. The build scripts use make (in cov_build.sh line 13 and Makefile) and g++ (in build_dependencies.sh lines 145-146). Without these tools, the build will fail. Add build-essential to the apt-get install command.
| apt-get install -y \ | ||
| git \ | ||
| python3 \ | ||
| python3-pip \ | ||
| cmake \ | ||
| libcunit1 \ | ||
| libcunit1-doc \ | ||
| libcunit1-dev \ | ||
| libcurl4-openssl-dev \ | ||
| ninja-build \ | ||
| meson \ | ||
| curl \ | ||
| libsoup2.4-dev \ | ||
| libxml2-dev \ | ||
| libglib2.0-dev \ | ||
| gobject-introspection \ | ||
| libgirepository1.0-dev \ | ||
| libgtk-3-dev \ | ||
| valac \ | ||
| pandoc |
There was a problem hiding this comment.
The pkg-config package should be added to the installation list. It is commonly required by meson and cmake build systems to locate library dependencies, especially for the GTK and GNOME libraries being installed (libglib2.0-dev, libgtk-3-dev, etc.). While it might be installed as a transitive dependency, explicitly including it ensures more reliable builds.
| apt-get install -y \ | ||
| git \ | ||
| python3 \ | ||
| python3-pip \ | ||
| cmake \ | ||
| libcunit1 \ | ||
| libcunit1-doc \ | ||
| libcunit1-dev \ | ||
| libcurl4-openssl-dev \ | ||
| ninja-build \ | ||
| meson \ | ||
| curl \ | ||
| libsoup2.4-dev \ | ||
| libxml2-dev \ | ||
| libglib2.0-dev \ | ||
| gobject-introspection \ | ||
| libgirepository1.0-dev \ | ||
| libgtk-3-dev \ | ||
| valac \ | ||
| pandoc |
There was a problem hiding this comment.
The build script uses the patch command (lines 82, 101-104 of build_dependencies.sh) but patch is not included in the package installation list. Add patch to the apt-get install command to ensure patches can be applied successfully.
|
Superseded by PR 187 |
No description provided.