Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
174 changes: 93 additions & 81 deletions .github/workflows/L1-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,21 @@ jobs:
coverage: without-coverage

steps:
# ISOLATION FIX: Create unique workspace for this job to prevent collisions
- name: Create isolated workspace
run: |
JOB_TMP=$(mktemp -d -t ci-${GITHUB_REPOSITORY##*/}-${GITHUB_JOB}-${GITHUB_RUN_ID}-XXXXXX)
echo "JOB_TMP_DIR=$JOB_TMP" >> $GITHUB_ENV
echo "BUILD_ID=${GITHUB_REPOSITORY##*/}-${GITHUB_JOB}-${GITHUB_RUN_ID}" >> $GITHUB_ENV
echo "Created isolated workspace: $JOB_TMP"

# ISOLATION FIX: Clean any leftover state from previous jobs on this runner
- name: Clean runner state
run: |
sudo rm -rf /tmp/ci-* /tmp/test ${JOB_TMP_DIR}/opt/persistent ${JOB_TMP_DIR}/opt/secure ${JOB_TMP_DIR}/lib/rdk /run/media ${JOB_TMP_DIR}/run/sda* 2>/dev/null || true
sudo rm -f /opt/*.conf ${JOB_TMP_DIR}/etc/device.properties ${JOB_TMP_DIR}/etc/dcm.properties 2>/dev/null || true
echo "Runner state cleaned"

- name: Set up cache
# Cache Thunder/ThunderInterfaces.
# https://github.com/actions/cache
Expand Down Expand Up @@ -63,7 +78,7 @@ jobs:
!thunder/install/usr/lib/pkgconfig/gtest.pc
!thunder/install/usr/lib/pkgconfig/gtest_main.pc
!thunder/install/usr/lib/wpeframework/plugins
key: ${{ runner.os }}-${{ env.THUNDER_REF }}-${{ env.INTERFACES_REF }}-4
key: ${{ runner.os }}-${{ github.repository }}-${{ github.job }}-${{ env.THUNDER_REF }}-${{ env.INTERFACES_REF }}-${{ matrix.compiler }}-${{ matrix.coverage }}-v5

- name: Set up Python
uses: actions/setup-python@v4
Expand Down Expand Up @@ -138,7 +153,7 @@ jobs:
with:
repository: rdkcentral/entservices-casting
path: entservices-casting
ref: develop
ref: fix/ci-job-isolation-parallel-execution

- name: Checkout googletest
if: steps.cache.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -536,93 +551,80 @@ jobs:
&&
cmake --install build/entservices-testframework

# ISOLATION FIX: Use job-specific temp directory instead of shared system paths
- name: Set up files
run: >
sudo mkdir -p -m 777
/tmp/test/testApp/etc/apps
/opt/persistent
/opt/secure
/opt/secure/reboot
/opt/secure/persistent
/opt/secure/persistent/System
/opt/logs
/lib/rdk
/run/media/sda1/logs/PreviousLogs
/run/sda1/UsbTestFWUpdate
/run/sda1/UsbProdFWUpdate
/run/sda2
/var/run/wpa_supplicant
/tmp/bus/usb/devices/100-123
/tmp/bus/usb/devices/101-124
/tmp/block/sda/device
/tmp/block/sdb/device
/dev/disk/by-id
/dev
&&
if [ ! -f mknod /dev/sda c 240 0 ]; then mknod /dev/sda c 240 0; fi &&
if [ ! -f mknod /dev/sda1 c 240 0 ]; then mknod /dev/sda1 c 240 0; fi &&
if [ ! -f mknod /dev/sda2 c 240 0 ]; then mknod /dev/sda2 c 240 0; fi &&
if [ ! -f mknod /dev/sdb c 240 0 ]; then mknod /dev/sdb c 240 0; fi &&
if [ ! -f mknod /dev/sdb1 c 240 0 ]; then mknod /dev/sdb1 c 240 0; fi &&
if [ ! -f mknod /dev/sdb2 c 240 0 ]; then mknod /dev/sdb2 c 240 0; fi
&&
sudo touch
/tmp/test/testApp/etc/apps/testApp_package.json
/opt/rdk_maintenance.conf
/opt/persistent/timeZoneDST
/opt/standbyReason.txt
/opt/tmtryoptout
/opt/fwdnldstatus.txt
/opt/dcm.properties
/etc/device.properties
/etc/dcm.properties
/etc/authService.conf
/version.txt
/run/media/sda1/logs/PreviousLogs/logFile.txt
/run/sda1/HSTP11MWR_5.11p5s1_VBN_sdy.bin
/run/sda1/UsbTestFWUpdate/HSTP11MWR_3.11p5s1_VBN_sdy.bin
/run/sda1/UsbProdFWUpdate/HSTP11MWR_4.11p5s1_VBN_sdy.bin
/lib/rdk/getMaintenanceStartTime.sh
/tmp/opkg.conf
/tmp/bus/usb/devices/100-123/serial
/tmp/bus/usb/devices/101-124/serial
/tmp/block/sda/device/vendor
/tmp/block/sda/device/model
/tmp/block/sdb/device/vendor
/tmp/block/sdb/device/model
mkdir -p -m 777
${JOB_TMP_DIR}/test/testApp/etc/apps
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/persistent
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/secure
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/secure/reboot
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/secure/persistent
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/secure/persistent/System
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/logs
${JOB_TMP_DIR}${JOB_TMP_DIR}/lib/rdk
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/media/sda1/logs/PreviousLogs
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda1/UsbTestFWUpdate
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda1/UsbProdFWUpdate
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda2
${JOB_TMP_DIR}${JOB_TMP_DIR}/var/run/wpa_supplicant
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/100-123
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/101-124
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sda/device
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sdb/device
${JOB_TMP_DIR}${JOB_TMP_DIR}/dev/disk/by-id
${JOB_TMP_DIR}/dev
&&
sudo chmod -R 777
/opt/rdk_maintenance.conf
/opt/persistent/timeZoneDST
/opt/standbyReason.txt
/opt/tmtryoptout
/opt/fwdnldstatus.txt
/opt/dcm.properties
/etc/device.properties
/etc/dcm.properties
/etc/authService.conf
/version.txt
/lib/rdk/getMaintenanceStartTime.sh
/tmp/opkg.conf
/tmp/bus/usb/devices/100-123/serial
/tmp/block/sda/device/vendor
/tmp/block/sda/device/model
/tmp/bus/usb/devices/101-124/serial
/tmp/block/sdb/device/vendor
/tmp/block/sdb/device/model
&&
cd /dev/disk/by-id/
&&
sudo ln -s ../../sda /dev/disk/by-id/usb-Generic_Flash_Disk_B32FD507-0
&&
sudo ln -s ../../sdb /dev/disk/by-id/usb-JetFlash_Transcend_16GB_UEUIRCXT-0
touch
${JOB_TMP_DIR}/test/testApp/etc/apps/testApp_package.json
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/rdk_maintenance.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/persistent/timeZoneDST
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/standbyReason.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/tmtryoptout
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/fwdnldstatus.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/dcm.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/device.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/dcm.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/authService.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/version.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/media/sda1/logs/PreviousLogs/logFile.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda1/HSTP11MWR_5.11p5s1_VBN_sdy.bin
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda1/UsbTestFWUpdate/HSTP11MWR_3.11p5s1_VBN_sdy.bin
${JOB_TMP_DIR}${JOB_TMP_DIR}/run/sda1/UsbProdFWUpdate/HSTP11MWR_4.11p5s1_VBN_sdy.bin
${JOB_TMP_DIR}${JOB_TMP_DIR}/lib/rdk/getMaintenanceStartTime.sh
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/opkg.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/100-123/serial
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/101-124/serial
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sda/device/vendor
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sda/device/model
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sdb/device/vendor
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sdb/device/model
&&
ls -l /dev/disk/by-id/usb-Generic_Flash_Disk_B32FD507-0
chmod -R 777
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/rdk_maintenance.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/persistent/timeZoneDST
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/standbyReason.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/tmtryoptout
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/fwdnldstatus.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/opt/dcm.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/device.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/dcm.properties
${JOB_TMP_DIR}${JOB_TMP_DIR}/etc/authService.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/version.txt
${JOB_TMP_DIR}${JOB_TMP_DIR}/lib/rdk/getMaintenanceStartTime.sh
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/opkg.conf
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/100-123/serial
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sda/device/vendor
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sda/device/model
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/bus/usb/devices/101-124/serial
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sdb/device/vendor
${JOB_TMP_DIR}${JOB_TMP_DIR}/tmp/block/sdb/device/model
&&
ls -l /dev/disk/by-id/usb-JetFlash_Transcend_16GB_UEUIRCXT-0
echo "Test files created in isolated workspace: ${JOB_TMP_DIR}"

- name: Run unit tests without valgrind
run: >
export TEST_ROOT_DIR=${JOB_TMP_DIR}
PATH=$GITHUB_WORKSPACE/install/usr/bin:${PATH}
LD_LIBRARY_PATH=$GITHUB_WORKSPACE/install/usr/lib:$GITHUB_WORKSPACE/install/usr/lib/wpeframework/plugins:${LD_LIBRARY_PATH}
GTEST_OUTPUT="json:$(pwd)/rdkL1TestResults.json"
Expand All @@ -633,6 +635,7 @@ jobs:
- name: Run unit tests with valgrind
if: ${{ !env.ACT }}
run: >
export TEST_ROOT_DIR=${JOB_TMP_DIR}
PATH=$GITHUB_WORKSPACE/install/usr/bin:${PATH}
LD_LIBRARY_PATH=$GITHUB_WORKSPACE/install/usr/lib:$GITHUB_WORKSPACE/install/usr/lib/wpeframework/plugins:${LD_LIBRARY_PATH}
GTEST_OUTPUT="json:$(pwd)/rdkL1TestResults.json"
Expand Down Expand Up @@ -683,4 +686,13 @@ jobs:
rdkL1TestResultsWithoutValgrind.json
rdkL1TestResultsWithValgrind.json
if-no-files-found: warn

# ISOLATION FIX: Cleanup isolated workspace
- name: Cleanup isolated workspace
if: always()
run: |
if [ -n "${JOB_TMP_DIR}" ] && [ -d "${JOB_TMP_DIR}" ]; then
rm -rf "${JOB_TMP_DIR}"
echo "Cleaned up isolated workspace: ${JOB_TMP_DIR}"
fi

Loading