Skip to content

L1 Unit Tests for rdkNativeScript #108

L1 Unit Tests for rdkNativeScript

L1 Unit Tests for rdkNativeScript #108

name: L1 Unit Tests for rdkNativeScript
permissions:
contents: read
checks: write
on:
workflow_dispatch:
push:
branches: [topic/RDKEMW-9461]
pull_request:
branches: [topic/RDKEMW-9461]
env:
AUTOMATICS_UNAME: ${{ secrets.AUTOMATICS_UNAME }}
AUTOMATICS_PASSCODE: ${{ secrets.AUTOMATICS_PASSCODE }}
jobs:
build-and-test-l1:
runs-on: ubuntu-22.04
steps:
- name: Checkout main source repository (rdkNativeScript)
uses: actions/checkout@v3
- name: Checkout rdkNativeScript_tests repository (externals/build.sh and dependencies)
uses: actions/checkout@v3
with:
repository: rdk-e/rdkNativeScript_tests
ref: topic/RDKEMW-9461
path: rdkNativeScript_tests
token: ${{ secrets.GH_PAT }}
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
git cmake gperf ruby-dev libglew-dev freeglut3 freeglut3-dev \
libglib2.0-dev libglib2.0-0 g++ meson bison libjpeg-dev libpng-dev \
libfreetype6-dev libicu-dev autoconf libtool libxml2-dev \
libcurl4-openssl-dev libexpat1-dev doxygen vim libcjson-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
libwayland-bin libwayland-dev wayland-protocols \
libreadline-dev net-tools libffi7 libmount1 libpcre3 libselinux1 zlib1g \
libunwind-dev
- name: Install ICU 66 and compatibility libs
run: |
sudo apt-get update
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu66_66.1-2ubuntu2_amd64.deb
sudo dpkg -i libicu66_66.1-2ubuntu2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/g/glib2.0/libglib2.0-0_2.64.6-1~ubuntu20.04.9_amd64.deb
sudo dpkg -i libglib2.0-0_2.64.6-1~ubuntu20.04.9_amd64.deb
sudo ldconfig
#wget http://archive.ubuntu.com/ubuntu/pool/main/p/pcre3/libpcre3_8.39-13ubuntu0.22.04.1_amd64.deb
#sudo dpkg -i libpcre3_8.39-13ubuntu0.22.04.1_amd64.deb
#sudo ldconfig
#wget http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb
#sudo dpkg -i libffi7_3.3-4_amd64.deb
#sudo ldconfig
- name: Setup externals folder in main repo
run: |
pwd
cp -a rdkNativeScript_tests/externals externals
- name: Make build.sh and scripts executable
run: |
pwd
chmod +x externals/build.sh
find externals -type f -name "preparedashpc.sh" -exec chmod +x {} \;
find externals -type f -name "copydashheaders.sh" -exec chmod +x {} \;
- name: Run build.sh to build externals (from tests repo)
run: |
cd externals
./build.sh
- name: Fix JavaScriptCore library symlinks
run: |
cd externals/extlibs/lib
rm -f libJavaScriptCore.so libJavaScriptCore.so.1
ln -s libJavaScriptCore.so.1.0.0 libJavaScriptCore.so.1
ln -s libJavaScriptCore.so.1 libJavaScriptCore.so
rm -f libessos.so libessos.so.0
ln -s libessos.so.0.0.0 libessos.so.0
ln -s libessos.so.0 libessos.so
rm -f libessosrmgr.so libessosrmgr.so.0
ln -s libessosrmgr.so.0.0.0 libessosrmgr.so.0
ln -s libessosrmgr.so.0 libessosrmgr.so
rm -f libuv.so libuv.so.1
ln -s libuv.so.1.0.0 libuv.so.1
ln -s libuv.so.1 libuv.so
- name: Fix symlinks for x86_64-linux-gnu libraries
run: |
cd externals/extlibs/lib/x86_64-linux-gnu
rm -f libglib-2.0.so libglib-2.0.so.0
ln -s libglib-2.0.so.0.6200.4 libglib-2.0.so.0
ln -s libglib-2.0.so.0 libglib-2.0.so
rm -f libgio-2.0.so libgio-2.0.so.0
ln -s libgio-2.0.so.0.6200.4 libgio-2.0.so.0
ln -s libgio-2.0.so.0 libgio-2.0.so
rm -f libgmodule-2.0.so libgmodule-2.0.so.0
ln -s libgmodule-2.0.so.0.6200.4 libgmodule-2.0.so.0
ln -s libgmodule-2.0.so.0 libgmodule-2.0.so
rm -f libgobject-2.0.so libgobject-2.0.so.0
ln -s libgobject-2.0.so.0.6200.4 libgobject-2.0.so.0
ln -s libgobject-2.0.so.0 libgobject-2.0.so
rm -f libgthread-2.0.so libgthread-2.0.so.0
ln -s libgthread-2.0.so.0.6200.4 libgthread-2.0.so.0
ln -s libgthread-2.0.so.0 libgthread-2.0.so
- name: Configure and build main repo (use CMakeLists.txt from @rdkcentral/rdkNativeScript)
run: |
mkdir -p build
cd build
cmake .. \
-DENABLE_JSRUNTIME_ESSOS=ON \
-DJSRUNTIME_ENGINE_NAME=jsc \
-DENABLE_JSRUNTIME_PLAYER=ON \
-DENABLE_AAMP_JSBINDINGS_DYNAMIC=ON \
-DCMAKE_CXX_FLAGS="-I../externals/extlibs/include/rtcore"
cmake --build .