Skip to content

DepthAI Core HIL Testing #2022

DepthAI Core HIL Testing

DepthAI Core HIL Testing #2022

Workflow file for this run

name: DepthAI Core HIL Testing
on:
workflow_dispatch:
inputs:
distinct_id:
description: 'run identifier'
required: false
testbed:
description: 'On what testbed will tests be run'
required: false
type: string
reservation_name:
description: 'Reservation name - usually usually unique identifier of root CI run'
required: false
type: string
hold_reservation:
description: 'If this is set to true testbed will stay reserved after process is done - reccomended for CI use'
required: false
type: boolean
depthai:
required: false
type: string
default: "v3_develop"
description: "Version for depthai"
push:
branches:
- v3_develop
tags:
- 'v*'
pull_request:
branches:
- v3_develop
# Only allow latest run on same branch to be tested
concurrency:
group: ci-tests-${{ github.ref }}-1
cancel-in-progress: true
jobs:
id:
name: Workflow ID Provider
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
steps:
- name: echo distinct ID ${{ github.event.inputs.distinct_id }}
run: echo ${{ github.event.inputs.distinct_id }}
# Testing
rvc4_test_bom:
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
if: github.event_name == 'workflow_dispatch'
strategy:
matrix:
# os: ['windows', 'macos', 'linux']
os: ['linux']
arch: ['x64']
flavor: ['vanilla']
fail-fast: false
runs-on: ['self-hosted', 'testbed-runner']
steps:
- uses: actions/checkout@v3
- name: Checkout source code from tag
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.depthai }} # Use input tag or the tag that triggered the workflow
path: depthai-core
submodules: 'recursive'
- name: Prepare HIL Framework
run: source scripts/hil/prepare_hil_framework.sh
- name: Configure, Build and Test
if: matrix.os == 'linux'
run: |
rm -rf depthai-core/scripts/hil/ && mkdir -p depthai-core/scripts/hil/ && cp -r scripts/hil/* depthai-core/scripts/hil/
rm depthai-core/tests/run_tests.py && cp tests/run_tests.py depthai-core/tests/run_tests.py
cd depthai-core
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.os }}-${{ matrix.flavor }}"
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
# Assign testbed and reservation name only if both are provided
if [[ -n "${{ github.event.inputs.testbed }}" && -n "${{ github.event.inputs.reservation_name }}" ]]; then
TESTBED_OPTION="--testbed ${{ github.event.inputs.testbed }}"
RESERVATION_OPTION="--reservation-name ${{ github.event.inputs.reservation_name }}"
else
TESTBED_OPTION="--capabilities 'depthai-core-hil' --models oak4_pro"
RESERVATION_OPTION="--reservation-name $RESERVATION_NAME"
fi
fi
if [[ "${{ github.event.inputs.hold_reservation }}" == 'true' ]]; then
HOLD_RESERVATION="--hold-reservation"
fi
exec hil $HOLD_RESERVATION $TESTBED_OPTION $RESERVATION_OPTION --wait --sync-workspace --exclude-build --commands 'cd /tmp/depthai-core|| exit' 'scripts/hil/run_hil_tests.sh ${{ matrix.flavor }} --rvc4'
# Testing
rvc2_test:
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
if: github.event_name != 'workflow_dispatch'
strategy:
matrix:
# os: ['windows', 'macos', 'linux']
os: ['linux']
arch: ['x64']
flavor: ['vanilla', 'asan-ubsan', 'tsan']
exclude:
- os: 'windows'
arch: 'x64'
flavor: 'tsan'
fail-fast: false
runs-on: ['self-hosted', 'testbed-runner']
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Prepare HIL Framework
run: source scripts/hil/prepare_hil_framework.sh
- name: Configure, Build and Test
if: matrix.os != 'linux'
run: |
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc2-${{ matrix.os }}-${{ matrix.flavor }}"
exec hil --capabilities depthai-core-hil --reservation-name $RESERVATION_NAME --wait --sync-workspace --exclude-build --commands 'cd /tmp/depthai-core|| exit' 'scripts/hil/run_hil_tests.sh ${{ matrix.flavor }} --rvc2'
- name: Configure, Build and Test
if: matrix.os == 'linux'
run: |
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc2-${{ matrix.os }}-${{ matrix.flavor }}"
exec hil --capabilities depthai-core-hil --reservation-name $RESERVATION_NAME --wait --sync-workspace --exclude-build --commands 'cd /tmp/depthai-core|| exit' 'scripts/hil/run_hil_tests.sh ${{ matrix.flavor }} --rvc2'
# Testing
rvc4_test:
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
if: github.event_name != 'workflow_dispatch'
strategy:
matrix:
# os: ['windows', 'macos', 'linux']
os: ['linux']
arch: ['x64']
flavor: ['vanilla', 'asan-ubsan', 'tsan']
rvc4os: ['r851.1.2']
exclude:
- os: 'windows'
arch: 'x64'
flavor: 'tsan'
fail-fast: false
runs-on: ['self-hosted', 'testbed-runner']
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Prepare HIL Framework
run: source scripts/hil/prepare_hil_framework.sh
- name: Configure, Build and Test
if: matrix.os != 'linux'
run: |
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.os }}-${{ matrix.rvc4os }}-${{ matrix.flavor }}"
exec hil --capabilities depthai-core-hil --models oak4_pro --reservation-name $RESERVATION_NAME --wait --sync-workspace --exclude-build --commands 'cd /tmp/depthai-core|| exit' 'scripts/hil/run_hil_tests.sh ${{ matrix.flavor }} --rvc4 '
- name: Configure, Build and Test
if: matrix.os == 'linux'
run: |
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.os }}-${{ matrix.rvc4os }}-${{ matrix.flavor }}"
exec hil --capabilities depthai-core-hil --models oak4_pro --reservation-name $RESERVATION_NAME --wait --sync-workspace --exclude-build --rvc4-os-version ${{ matrix.rvc4os }} --commands 'cd /tmp/depthai-core|| exit' 'scripts/hil/run_hil_tests.sh ${{ matrix.flavor }} --rvc4'