Skip to content

Commit a0c2d6a

Browse files
authored
Merge pull request #1442 from luxonis/release/3.0.0
Release/3.0.0
2 parents 4adc1df + 162c7a7 commit a0c2d6a

File tree

134 files changed

+5725
-907
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+5725
-907
lines changed

.github/workflows/bom.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ jobs:
4747
id: build_and_push
4848
run: |
4949
cp -n scripts/hil/build_and_push.sh depthai-core/scripts/hil/build_and_push.sh
50-
cp -n tests/Dockerfile depthai-core/tests/Dockerfile
50+
rm depthai-core/tests/Dockerfile
51+
cp tests/Dockerfile depthai-core/tests/Dockerfile
5152
cp -n tests/run_tests_entrypoint.sh depthai-core/tests/run_tests_entrypoint.sh
5253
cd depthai-core
5354

.github/workflows/main.workflow.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
if: matrix.os == 'ubuntu-latest'
8181
run: |
8282
sudo apt-get update
83-
sudo apt-get install libopencv-dev libudev-dev
83+
sudo apt-get install libopencv-dev libudev-dev libusb-1.0-0-dev
8484
8585
- name: Install dependencies
8686
if: matrix.os == 'windows-latest'
@@ -126,7 +126,7 @@ jobs:
126126
if: matrix.os == 'ubuntu-latest'
127127
run: |
128128
sudo apt-get update
129-
sudo apt-get install libopencv-dev libudev-dev
129+
sudo apt-get install libopencv-dev libudev-dev libusb-1.0-0-dev
130130
131131
- name: Install dependencies
132132
if: matrix.os == 'windows-latest'

.github/workflows/python-main.yml

Lines changed: 112 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -239,22 +239,28 @@ jobs:
239239
run: |
240240
python -m pip install --upgrade pip
241241
- name: Building wheels
242-
run: cd bindings/python && python -m pip wheel . -w ./wheelhouse/audited/ --verbose
242+
run: cd bindings/python && python -m pip wheel . -w ./wheelhouse/ --verbose
243243
- name: Print out vcpkg logs if building port fails
244244
if: failure() # Only run this if the build step fails
245245
run: cd bindings/python && bash ./ci/show_vcpkg_logs.sh
246+
- name: Install delvewheel
247+
run: python -m pip install delvewheel
248+
- name: List wheelhouse
249+
run: cd bindings/python && ls ./wheelhouse
250+
- name: Auditing wheels
251+
shell: bash
252+
run: |
253+
cd bindings/python
254+
EXTRA_DLL_PATH=$(find ./build -type d -name "temp.win*" -exec ls -d {} \; | head -n 1)/Release/Release
255+
echo "delvewheel extra dll path: $EXTRA_DLL_PATH"
256+
for wheel in ./wheelhouse/*.whl; do
257+
delvewheel repair "$wheel" --add-path "$EXTRA_DLL_PATH" --include vcruntime140.dll --include vcruntime140_1.dll --include ucrtbase.dll -w wheelhouse/audited
258+
done
246259
- name: Archive wheel artifacts
247260
uses: actions/upload-artifact@v4
248261
with:
249262
name: audited-wheels-windows-${{ matrix.python-version }}
250263
path: bindings/python/wheelhouse/audited/*
251-
- name: Deploy wheels to artifactory (if not a release)
252-
if: startsWith(github.ref, 'refs/tags/v') != true
253-
run: cd bindings/python && bash ./ci/upload-artifactory.sh
254-
env:
255-
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
256-
ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }}
257-
ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }}
258264

259265
# This job builds wheels for macOS arch
260266
build-macos:
@@ -328,8 +334,28 @@ jobs:
328334
with:
329335
name: audited-wheels-macos-${{ matrix.os }}-${{ matrix.python-version }}
330336
path: bindings/python/wheelhouse/audited/*
331-
- name: Deploy wheels to artifactory (if not a release)
332-
if: startsWith(github.ref, 'refs/tags/v') != true
337+
338+
combine-macos-wheels:
339+
needs: build-macos
340+
strategy:
341+
matrix:
342+
os: [macos-13, macos-14]
343+
fail-fast: false
344+
runs-on: ${{ matrix.os }}
345+
steps:
346+
- uses: actions/checkout@v3
347+
- name: Download audited wheels
348+
uses: actions/download-artifact@v4
349+
with:
350+
pattern: audited-wheels-macos-${{ matrix.os }}-*
351+
path: bindings/python/wheelhouse/audited/
352+
merge-multiple: true
353+
- name: Combine wheels
354+
run: |
355+
cd bindings/python && mv wheelhouse/audited wheelhouse/audited_pre && mkdir -p wheelhouse/audited
356+
echo "Combining repaired wheels into one master wheel"
357+
python3 ci/combine_wheels.py --input_folder=wheelhouse/audited_pre --output_folder=wheelhouse/audited
358+
- name: Upload combined wheels to artifactory
333359
run: cd bindings/python && bash ./ci/upload-artifactory.sh
334360
env:
335361
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
@@ -403,8 +429,28 @@ jobs:
403429
with:
404430
name: audited-wheels-linux-x86_64-${{ matrix.python-set }}
405431
path: bindings/python/wheelhouse/audited/*
406-
- name: Deploy wheels to artifactory (if not a release)
407-
if: startsWith(github.ref, 'refs/tags/v') != true
432+
433+
combine-linux-x86_64-wheels:
434+
needs: build-linux-x86_64
435+
runs-on: ubuntu-latest
436+
container:
437+
image: quay.io/pypa/manylinux_2_28_x86_64:2024.12.05-1
438+
env:
439+
PLAT: manylinux_2_28_x86_64
440+
steps:
441+
- uses: actions/checkout@v3
442+
- name: Download audited wheels
443+
uses: actions/download-artifact@v4
444+
with:
445+
pattern: audited-wheels-linux-x86_64-*
446+
path: bindings/python/wheelhouse/audited/
447+
merge-multiple: true
448+
- name: Combine wheels
449+
run: |
450+
cd bindings/python && mv wheelhouse/audited wheelhouse/audited_pre && mkdir -p wheelhouse/audited
451+
echo "Combining repaired wheels into one master wheel"
452+
python3 ci/combine_wheels.py --input_folder=wheelhouse/audited_pre --output_folder=wheelhouse/audited
453+
- name: Upload combined wheels to artifactory
408454
run: cd bindings/python && bash ./ci/upload-artifactory.sh
409455
env:
410456
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
@@ -482,8 +528,59 @@ jobs:
482528
with:
483529
name: audited-wheels-linux-arm64-${{ matrix.python-set }}
484530
path: bindings/python/wheelhouse/audited/*
485-
- name: Deploy wheels to artifactory (if not a release)
486-
if: startsWith(github.ref, 'refs/tags/v') != true
531+
532+
combine-linux-arm64-wheels:
533+
needs: build-linux-arm64
534+
runs-on: ubuntu-24.04-arm
535+
timeout-minutes: 1440 # Set timeout to 24 hours
536+
container:
537+
image: quay.io/pypa/manylinux_2_28_aarch64:2024.12.05-1
538+
env:
539+
PLAT: manylinux_2_28_aarch64
540+
steps:
541+
- uses: actions/checkout@v3
542+
- name: Download audited wheels
543+
uses: actions/download-artifact@v4
544+
with:
545+
pattern: audited-wheels-linux-arm64-*
546+
path: bindings/python/wheelhouse/audited/
547+
merge-multiple: true
548+
- name: Combine wheels
549+
run: |
550+
cd bindings/python && mv wheelhouse/audited wheelhouse/audited_pre && mkdir -p wheelhouse/audited
551+
echo "Combining repaired wheels into one master wheel"
552+
python3 ci/combine_wheels.py --input_folder=wheelhouse/audited_pre --output_folder=wheelhouse/audited
553+
- name: Upload combined wheels to artifactory
554+
run: cd bindings/python && bash ./ci/upload-artifactory.sh
555+
env:
556+
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
557+
ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }}
558+
ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }}
559+
560+
combine-windows-x86_64-wheels:
561+
needs: build-windows-x86_64
562+
runs-on: windows-latest
563+
steps:
564+
- uses: actions/checkout@v3
565+
- name: Download audited wheels
566+
uses: actions/download-artifact@v4
567+
with:
568+
pattern: audited-wheels-windows-*
569+
path: bindings/python/wheelhouse/audited/
570+
merge-multiple: true
571+
- name: Set up Python
572+
uses: actions/setup-python@v4
573+
with:
574+
python-version: "3.12"
575+
- name: Combine wheels
576+
run: |
577+
python -m pip install delvewheel # Install delvewheel for patching wheels
578+
cd bindings/python
579+
mv wheelhouse/audited wheelhouse/audited_pre
580+
mkdir -p wheelhouse/audited
581+
echo "Combining repaired wheels into one master wheel"
582+
python ci/combine_wheels.py --input_folder=wheelhouse/audited_pre --output_folder=wheelhouse/audited --log_level=debug
583+
- name: Upload combined wheels to artifactory
487584
run: cd bindings/python && bash ./ci/upload-artifactory.sh
488585
env:
489586
ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }}
@@ -494,7 +591,7 @@ jobs:
494591
if: startsWith(github.ref, 'refs/tags/v')
495592
# needs: [pytest, build-linux-armhf, build-windows-x86_64, build-macos-x86_64, build-macos-arm64, build-linux-x86_64, build-linux-arm64]
496593
# needs: [pytest, build-windows-x86_64, build-macos, build-linux-x86_64, build-linux-arm64]
497-
needs: [build-windows-x86_64, build-macos, build-linux-x86_64, build-linux-arm64]
594+
needs: [combine-macos-wheels, combine-linux-x86_64-wheels, combine-linux-arm64-wheels, combine-windows-x86_64-wheels]
498595
runs-on: ubuntu-latest
499596

500597
steps:

.github/workflows/test.workflow.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
with:
2525
flavor: "vanilla"
2626
luxonis_os_versions_to_test: "['debug-1.6.0', '1.14.1', '1.15.0']"
27+
luxonis_os_versions_to_test_rgb: "['1.15.0']"
2728
secrets:
2829
CONTAINER_REGISTRY: ${{ secrets.CONTAINER_REGISTRY }}
2930

.github/workflows/test_child.yml

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ on:
88
luxonis_os_versions_to_test:
99
required: true
1010
type: string
11+
luxonis_os_versions_to_test_rgb:
12+
required: false
13+
type: string
14+
default: "[]"
1115
secrets:
1216
CONTAINER_REGISTRY:
1317
required: true
@@ -38,9 +42,15 @@ jobs:
3842
echo "Using branch: $BRANCH_NAME"
3943
scripts/hil/build_and_push.sh "${{ inputs.flavor }}" "$BRANCH_NAME" "$CONTAINER_REGISTRY" "${{ github.sha }}" "$PARALLEL_JOBS" "$PULL_REQUEST" "$TAG"
4044
45+
prepare_hil_framework:
46+
needs: [build_docker_container]
47+
runs-on: ['self-hosted', 'testbed-runner']
48+
steps:
49+
- name: Prepare HIL Framework
50+
run: source scripts/hil/prepare_hil_framework.sh
4151

4252
linux_rvc2_test:
43-
needs: [build_docker_container]
53+
needs: [build_docker_container,prepare_hil_framework]
4454
runs-on: ['self-hosted', 'testbed-runner']
4555
steps:
4656
- uses: actions/checkout@v3
@@ -50,9 +60,11 @@ jobs:
5060
script: |
5161
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
5262
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
53-
54-
- name: Prepare HIL Framework
55-
run: source scripts/hil/prepare_hil_framework.sh
63+
- name: Import HIL Framework
64+
run: |
65+
echo "/home/$USER/hil_framework/lib_testbed/tools" >> $GITHUB_PATH
66+
echo "PYTHONPATH="$PYTHONPATH:/home/$USER/hil_framework"" >> $GITHUB_ENV
67+
echo "HIL_FRAMEWORK_PATH="/home/$USER/hil_framework"" >> $GITHUB_ENV
5668
5769
- name: Run RVC2 tests
5870
env:
@@ -63,7 +75,7 @@ jobs:
6375
6476
# Testing
6577
linux_rvc4_test:
66-
needs: [build_docker_container]
78+
needs: [build_docker_container,prepare_hil_framework]
6779
strategy:
6880
matrix:
6981
rvc4os: ${{ fromJson(inputs.luxonis_os_versions_to_test) }}
@@ -73,10 +85,37 @@ jobs:
7385
steps:
7486
- uses: actions/checkout@v3
7587

76-
- name: Prepare HIL Framework
77-
run: source scripts/hil/prepare_hil_framework.sh
88+
- name: Import HIL Framework
89+
run: |
90+
echo "/home/$USER/hil_framework/lib_testbed/tools" >> $GITHUB_PATH
91+
echo "PYTHONPATH="$PYTHONPATH:/home/$USER/hil_framework"" >> $GITHUB_ENV
92+
echo "HIL_FRAMEWORK_PATH="/home/$USER/hil_framework"" >> $GITHUB_ENV
93+
7894
7995
- name: Run RVC4 tests
8096
run: |
8197
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.rvc4os }}-${{ inputs.flavor }}"
82-
exec hil --models "oak4_pro or oak4_d" --reservation-name $RESERVATION_NAME --wait --sync-workspace --rvc4-os-version ${{ matrix.rvc4os }} --docker-image ${{ secrets.CONTAINER_REGISTRY }}/depthai-core-hil:${{ needs.build_docker_container.outputs.tag }} --commands "./tests/run_tests_entrypoint.sh rvc4"
98+
exec hil --models "oak4_pro or oak4_d" --reservation-name $RESERVATION_NAME --wait --rvc4-os-version ${{ matrix.rvc4os }} --docker-image ${{ secrets.CONTAINER_REGISTRY }}/depthai-core-hil:${{ needs.build_docker_container.outputs.tag }} --commands "./tests/run_tests_entrypoint.sh rvc4"
99+
100+
linux_rvc4_rgb_test:
101+
needs: [build_docker_container,prepare_hil_framework]
102+
strategy:
103+
matrix:
104+
rvc4os: ${{ fromJson(inputs.luxonis_os_versions_to_test_rgb) }}
105+
fail-fast: false
106+
runs-on: ['self-hosted', 'testbed-runner']
107+
108+
steps:
109+
- uses: actions/checkout@v3
110+
111+
- name: Import HIL Framework
112+
run: |
113+
echo "/home/$USER/hil_framework/lib_testbed/tools" >> $GITHUB_PATH
114+
echo "PYTHONPATH="$PYTHONPATH:/home/$USER/hil_framework"" >> $GITHUB_ENV
115+
echo "HIL_FRAMEWORK_PATH="/home/$USER/hil_framework"" >> $GITHUB_ENV
116+
117+
- name: Run RVC4 tests
118+
run: |
119+
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.rvc4os }}-${{ inputs.flavor }}-rgb"
120+
exec hil --models "oak4_s" --reservation-name $RESERVATION_NAME --wait --rvc4-os-version ${{ matrix.rvc4os }} --docker-image ${{ secrets.CONTAINER_REGISTRY }}/depthai-core-hil:${{ needs.build_docker_container.outputs.tag }} --commands "./tests/run_tests_entrypoint.sh rvc4rgb"
121+

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,6 @@ _builds/
4747
.compile_commands.json
4848
.depthai_cached_models/
4949
install*
50+
!install_requirements.py
5051
build*
52+
depthai_calib_backup.json

0 commit comments

Comments
 (0)