From a53017737d3de2db5bc3a478c606ee86f459cfd2 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 09:07:31 -0500 Subject: [PATCH 01/40] Fix zoo_helper build --- CMakeLists.txt | 46 +++++++++++++++++++++++++++++++++++-- src/modelzoo/zoo_helper.cpp | 25 +++++++++++++++----- vcpkg.json | 2 ++ 3 files changed, 65 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2436230a3..8c5e84246 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,9 +504,46 @@ set_target_properties(${TARGET_CORE_NAME} PROPERTIES EXPORT_NAME ${TARGET_CORE_A list(APPEND targets_to_export ${TARGET_CORE_NAME}) # Add model_zoo helper binary -add_executable(zoo_helper src/modelzoo/zoo_helper.cpp) +find_package(argparse REQUIRED) +find_package(fmt REQUIRED) +find_package(yaml-cpp REQUIRED) +set(ZOO_HELPER_SOURCES + src/modelzoo/zoo_helper.cpp + src/modelzoo/Zoo.cpp + src/modelzoo/NNModelDescription.cpp + src/utility/Environment.cpp + src/utility/Logging.cpp +) +set(ZOO_HELPER_LINK_LIBRARIES + argparse::argparse + nlohmann_json::nlohmann_json + fmt::fmt + yaml-cpp::yaml-cpp +) +add_executable(zoo_helper ${ZOO_HELPER_SOURCES}) target_compile_definitions(zoo_helper PRIVATE DEPTHAI_TARGET_CORE) -target_link_libraries(zoo_helper PRIVATE ${TARGET_CORE_NAME}) +target_link_libraries(zoo_helper PRIVATE ${ZOO_HELPER_LINK_LIBRARIES}) +target_include_directories(zoo_helper + PRIVATE + # Relative path to include directories after installed + "$" + "$" + + # Build time path to include directories + "$" + "$" + "$" + + "$" + "$" + "$" + "$" +) +target_include_directories(zoo_helper SYSTEM + PRIVATE + "$" +) + list(APPEND targets_to_export zoo_helper) # Add default flags to core @@ -800,6 +837,11 @@ if(DEPTHAI_ENABLE_CURL) cpr::cpr ) target_compile_definitions(${TARGET_CORE_NAME} PRIVATE DEPTHAI_ENABLE_CURL) + target_link_libraries(zoo_helper PRIVATE + CURL::libcurl + cpr::cpr + ) + target_compile_definitions(zoo_helper PRIVATE DEPTHAI_ENABLE_CURL) endif() # Add compile & CMake definitions diff --git a/src/modelzoo/zoo_helper.cpp b/src/modelzoo/zoo_helper.cpp index 5eeb3fb39..7e4e4f8dd 100644 --- a/src/modelzoo/zoo_helper.cpp +++ b/src/modelzoo/zoo_helper.cpp @@ -1,18 +1,31 @@ #include -#include +#include #include "depthai/modelzoo/Zoo.hpp" int main(int argc, char* argv[]) { - // Check if the number of arguments is correct - if(argc != 3) { - std::cout << "Usage: zoo_helper folder_with_yaml_files cache_folder" << std::endl; + + // Add arguments + argparse::ArgumentParser program("DepthAI Model Zoo Helper"); + program.add_argument("--yaml_folder").help("Folder with YAML files describing models to download"); + program.add_argument("--cache_folder").help("Cache folder to download models into"); + + // Parse arguments + try { + program.parse_args(argc, argv); + } catch (const std::runtime_error& err) { + std::cerr << err.what() << std::endl; + std::cerr << program; return EXIT_FAILURE; } // Unpack arguments - const std::string yamlFolder = argv[1]; - const std::string cacheFolder = argv[2]; + auto yamlFolder = program.get("--yaml_folder"); + auto cacheFolder = program.get("--cache_folder"); + + // Print arguments + std::cout << "Downloading models defined in yaml files in folder: " << yamlFolder << std::endl; + std::cout << "Downloading models into cache folder: " << cacheFolder << std::endl; // Download models dai::downloadModelsFromZoo(yamlFolder, cacheFolder); diff --git a/vcpkg.json b/vcpkg.json index ffd192ce3..8d57aead5 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -14,6 +14,8 @@ "fp16", "mp4v2", "libnop", + "argparse", + "fmt", "neargye-semver", "magic-enum", { From 9802bdd01c0d531bc2a03c3e3f456082702552cd Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 09:08:23 -0500 Subject: [PATCH 02/40] List all files --- .github/workflows/python-main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index 370abd88a..f3369deb3 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -470,6 +470,8 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + - name: List files + run: find * # This job builds wheels for ARM64 arch build-linux-arm64: From dad8ff5fec5417d13dfff5e0a0e69b63f5d9d257 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 12:28:11 -0500 Subject: [PATCH 03/40] Update github action for zoo_helper build --- .github/workflows/python-main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index f3369deb3..6604e634a 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -470,6 +470,10 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + - name: Configure project for `zoo_helper` + run: cmake -S . -B build -DEPTHAI_ENABLE_CURL=ON " + - name: Build target 'zoo_helper' + run: cmake --build build --target zoo_helper --parallel 4 - name: List files run: find * From c247a7202ac22785c9feea54cf840a60a4bef596 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 14:07:23 -0500 Subject: [PATCH 04/40] Remove unwanted character --- .github/workflows/python-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index 6604e634a..ad30a0fb2 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -471,7 +471,7 @@ jobs: ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} - name: Configure project for `zoo_helper` - run: cmake -S . -B build -DEPTHAI_ENABLE_CURL=ON " + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - name: Build target 'zoo_helper' run: cmake --build build --target zoo_helper --parallel 4 - name: List files From 1f3df8bf83e3ee53a7be16fad667d7118072f921 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 14:12:40 -0500 Subject: [PATCH 05/40] Remove REQUIRED flags --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c5e84246..75ad19375 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,9 +504,9 @@ set_target_properties(${TARGET_CORE_NAME} PROPERTIES EXPORT_NAME ${TARGET_CORE_A list(APPEND targets_to_export ${TARGET_CORE_NAME}) # Add model_zoo helper binary -find_package(argparse REQUIRED) -find_package(fmt REQUIRED) -find_package(yaml-cpp REQUIRED) +find_package(argparse) +find_package(fmt) +find_package(yaml-cpp) set(ZOO_HELPER_SOURCES src/modelzoo/zoo_helper.cpp src/modelzoo/Zoo.cpp From 73868b71104d2d5358e137225ceb6c307608cc2f Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 14:33:18 -0500 Subject: [PATCH 06/40] Remove find_package calls --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75ad19375..f19b0834f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,9 +504,7 @@ set_target_properties(${TARGET_CORE_NAME} PROPERTIES EXPORT_NAME ${TARGET_CORE_A list(APPEND targets_to_export ${TARGET_CORE_NAME}) # Add model_zoo helper binary -find_package(argparse) find_package(fmt) -find_package(yaml-cpp) set(ZOO_HELPER_SOURCES src/modelzoo/zoo_helper.cpp src/modelzoo/Zoo.cpp From 69ae3689eef671f8139163cd80de2d6b2d5a74d9 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 14:37:59 -0500 Subject: [PATCH 07/40] Remove find_package calls --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f19b0834f..8c5e84246 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,7 +504,9 @@ set_target_properties(${TARGET_CORE_NAME} PROPERTIES EXPORT_NAME ${TARGET_CORE_A list(APPEND targets_to_export ${TARGET_CORE_NAME}) # Add model_zoo helper binary -find_package(fmt) +find_package(argparse REQUIRED) +find_package(fmt REQUIRED) +find_package(yaml-cpp REQUIRED) set(ZOO_HELPER_SOURCES src/modelzoo/zoo_helper.cpp src/modelzoo/Zoo.cpp From 656f9335bb02496ec280eda8fb7eda41bd8ca7ca Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 15:33:59 -0500 Subject: [PATCH 08/40] Preserve build directory --- .github/workflows/python-main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index ad30a0fb2..f6fe8ab21 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -474,6 +474,13 @@ jobs: run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - name: Build target 'zoo_helper' run: cmake --build build --target zoo_helper --parallel 4 + - name: Preserve build directory + uses: actions/upload-artifact@v3 + with: + name: build-directory + path: build/ + - name: List build directory contents + run: ls -la build/ - name: List files run: find * From 826cea322503147b1ec444bbd5e5736a3904a570 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 19 Dec 2024 17:35:54 -0500 Subject: [PATCH 09/40] Update python-main.yml --- .github/workflows/python-main.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index f6fe8ab21..e03c23588 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -474,11 +474,6 @@ jobs: run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - name: Build target 'zoo_helper' run: cmake --build build --target zoo_helper --parallel 4 - - name: Preserve build directory - uses: actions/upload-artifact@v3 - with: - name: build-directory - path: build/ - name: List build directory contents run: ls -la build/ - name: List files From 655db3a2a27bae0987702bbd9767ceeb9fcb8be6 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Fri, 20 Dec 2024 02:57:11 -0500 Subject: [PATCH 10/40] Create a standalone github action for zoo_helper --- .github/workflows/python-main.yml | 8 ------ .github/workflows/zoo-helper.yml | 47 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/zoo-helper.yml diff --git a/.github/workflows/python-main.yml b/.github/workflows/python-main.yml index e03c23588..370abd88a 100644 --- a/.github/workflows/python-main.yml +++ b/.github/workflows/python-main.yml @@ -470,14 +470,6 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} - - name: Configure project for `zoo_helper` - run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - - name: Build target 'zoo_helper' - run: cmake --build build --target zoo_helper --parallel 4 - - name: List build directory contents - run: ls -la build/ - - name: List files - run: find * # This job builds wheels for ARM64 arch build-linux-arm64: diff --git a/.github/workflows/zoo-helper.yml b/.github/workflows/zoo-helper.yml new file mode 100644 index 000000000..9ea3e9a30 --- /dev/null +++ b/.github/workflows/zoo-helper.yml @@ -0,0 +1,47 @@ +name: Zoo Helper Build + +on: + workflow_dispatch: + +env: + CMAKE_WINDOWS_SDK_VERSION: '10.0.18362.0' + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + +jobs: + build-zoo-helper: + runs-on: ubuntu-latest + steps: + - name: Cache .hunter folder + uses: actions/cache@v3 + with: + path: ~/.hunter + key: hunter-ubuntu-latest-v3-develop + + - 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 || ''); + + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y libusb-1.0-0-dev pkg-config + + - name: Configure project + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON + + - name: Build zoo_helper + run: cmake --build build --target zoo_helper --parallel 4 + + - name: Upload zoo_helper artifact + uses: actions/upload-artifact@v3 + with: + name: zoo_helper + path: build/zoo_helper + retention-days: 7 From a1c3d350be1edb3b5e54549356f03a69d1bc0e1b Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 7 Jan 2025 20:48:57 -0500 Subject: [PATCH 11/40] Update --- .github/workflows/zoo-helper.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/zoo-helper.yml b/.github/workflows/zoo-helper.yml index 9ea3e9a30..a4f9fe6c7 100644 --- a/.github/workflows/zoo-helper.yml +++ b/.github/workflows/zoo-helper.yml @@ -1,4 +1,4 @@ -name: Zoo Helper Build +name: Zoo Helper on: workflow_dispatch: @@ -37,11 +37,4 @@ jobs: run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - name: Build zoo_helper - run: cmake --build build --target zoo_helper --parallel 4 - - - name: Upload zoo_helper artifact - uses: actions/upload-artifact@v3 - with: - name: zoo_helper - path: build/zoo_helper - retention-days: 7 + run: cmake --build build --target zoo_helper --parallel 4 \ No newline at end of file From 984f1a3e352e5521d2e95730f66cd84ce0783c32 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 8 Jan 2025 08:43:48 -0500 Subject: [PATCH 12/40] Rename workflow --- .github/workflows/{zoo-helper.yml => zoo_helper.workflow.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{zoo-helper.yml => zoo_helper.workflow.yml} (100%) diff --git a/.github/workflows/zoo-helper.yml b/.github/workflows/zoo_helper.workflow.yml similarity index 100% rename from .github/workflows/zoo-helper.yml rename to .github/workflows/zoo_helper.workflow.yml From 4a6ad342c36a2865bb2592ae1064e03ac85db8ab Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 8 Jan 2025 08:55:23 -0500 Subject: [PATCH 13/40] Add a little more setup --- .github/workflows/zoo_helper.workflow.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index a4f9fe6c7..00b8a0351 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -33,6 +33,14 @@ jobs: sudo apt update sudo apt install -y libusb-1.0-0-dev pkg-config + - name: Installing libusb1-devel dependency + run: yum install -y libusb1-devel perl-core curl zip unzip tar ninja-build zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel libXrandr-devel libXtst-devel libudev-devel lapack-devel nasm libtool autoconf automake + + - name: Installing cmake dependency + run: | + /opt/python/cp38-cp38/bin/python3.8 -m pip install cmake + ln -s /opt/python/cp38-cp38/bin/cmake /bin/ + - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 2d5d0fc7d103615e8caec0c78c94b70199cc092d Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 8 Jan 2025 09:00:44 -0500 Subject: [PATCH 14/40] Add a little more setup --- .github/workflows/zoo_helper.workflow.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 00b8a0351..49245ab30 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -31,15 +31,7 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install -y libusb-1.0-0-dev pkg-config - - - name: Installing libusb1-devel dependency - run: yum install -y libusb1-devel perl-core curl zip unzip tar ninja-build zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel libXrandr-devel libXtst-devel libudev-devel lapack-devel nasm libtool autoconf automake - - - name: Installing cmake dependency - run: | - /opt/python/cp38-cp38/bin/python3.8 -m pip install cmake - ln -s /opt/python/cp38-cp38/bin/cmake /bin/ + sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 3b6d0f41e26d378d7e9671fb5a8192c536fe4725 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Fri, 10 Jan 2025 11:16:46 -0500 Subject: [PATCH 15/40] Add helper script for zoo helper uploading to artifactory --- .github/workflows/zoo_helper.workflow.yml | 6 +++++- ci/upload-artifactory-zoo-helper.sh | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 ci/upload-artifactory-zoo-helper.sh diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 49245ab30..f437e331d 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -37,4 +37,8 @@ jobs: run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON - name: Build zoo_helper - run: cmake --build build --target zoo_helper --parallel 4 \ No newline at end of file + run: cmake --build build --target zoo_helper --parallel 4 + + - name: Upload zoo_helper to artifactory + run: | + bash ./ci/upload-artifactory-zoo-helper.sh diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh new file mode 100644 index 000000000..b0e06d34f --- /dev/null +++ b/ci/upload-artifactory-zoo-helper.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Download jfrog cli +curl -fL https://getcli.jfrog.io | sh + +# Set paths +export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper +export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper + +# Get git hash +export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD | cut -c1-8) + +# Upload binary to artifactory +jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS +jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" From 9c68f3b565a9c0490da55564623c8ee3da439605 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Fri, 10 Jan 2025 11:56:50 -0500 Subject: [PATCH 16/40] Fix: Command not found --- ci/upload-artifactory-zoo-helper.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index b0e06d34f..22444ab24 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -11,5 +11,5 @@ export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD | cut -c1-8) # Upload binary to artifactory -jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS -jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" +./jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS +./jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" From 4e3ff96c83268aea7be16aa4b52155a1a19b5ee4 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Fri, 10 Jan 2025 12:02:39 -0500 Subject: [PATCH 17/40] Set secrets as env variables --- .github/workflows/zoo_helper.workflow.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index f437e331d..51dc2fd38 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -42,3 +42,8 @@ jobs: - name: Upload zoo_helper to artifactory run: | bash ./ci/upload-artifactory-zoo-helper.sh + env: + ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} + ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} + ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + From 4fe7bf91aeff470ec690da9dd1f3ac7a5de8437d Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Fri, 10 Jan 2025 12:15:51 -0500 Subject: [PATCH 18/40] Use the entire git hash --- ci/upload-artifactory-zoo-helper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index 22444ab24..7352f6732 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -8,7 +8,7 @@ export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper # Get git hash -export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD | cut -c1-8) +export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD) # Upload binary to artifactory ./jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS From d3dc9965dfe71da0b5f4ef8400d66a1f787462dd Mon Sep 17 00:00:00 2001 From: Matevz Morato Date: Wed, 15 Jan 2025 17:11:43 +0100 Subject: [PATCH 19/40] Attempt to fix secretes --- .github/workflows/zoo_helper.workflow.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 51dc2fd38..c4f672fae 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -42,8 +42,8 @@ jobs: - name: Upload zoo_helper to artifactory run: | bash ./ci/upload-artifactory-zoo-helper.sh - env: - ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} - ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} - ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + env: + ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} + ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} + ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} From 020ef19d6661551352addfc1607efd7074565ef2 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 15 Jan 2025 16:52:40 +0000 Subject: [PATCH 20/40] Add automake dependency --- .github/workflows/zoo_helper.workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index c4f672fae..8feeba880 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -31,7 +31,7 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential + sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential automake - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 6708c2c35ff095d2560c8a28a41850cdaf5314b9 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 15 Jan 2025 18:10:54 +0000 Subject: [PATCH 21/40] Try ninja-build --- .github/workflows/zoo_helper.workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 8feeba880..46c9f40f2 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -32,6 +32,7 @@ jobs: run: | sudo apt update sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential automake + sudo apt install ninja-build - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 65965175d93981181edcb3ac77ff68ad342ee687 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 15 Jan 2025 18:19:57 +0000 Subject: [PATCH 22/40] fix? --- .github/workflows/zoo_helper.workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 46c9f40f2..111daa52e 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -33,6 +33,7 @@ jobs: sudo apt update sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential automake sudo apt install ninja-build + sudo apt install make - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 65782c673f1961c09d8d23d681f3cae18cbd30ef Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 15 Jan 2025 18:30:55 +0000 Subject: [PATCH 23/40] Fix CI issues --- .github/workflows/zoo_helper.workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 111daa52e..f17289cbb 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -33,7 +33,7 @@ jobs: sudo apt update sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential automake sudo apt install ninja-build - sudo apt install make + sudo apt install make automake libltdl-dev - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 975a38e93944f3a1b7acf75d863a769af7cbaab0 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 15 Jan 2025 19:05:42 +0000 Subject: [PATCH 24/40] zoo helper CI cleanup --- .github/workflows/zoo_helper.workflow.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index f17289cbb..f724d9dd3 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -31,9 +31,9 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev build-essential automake - sudo apt install ninja-build - sudo apt install make automake libltdl-dev + sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev + sudo apt install libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev + sudo apt install build-essential automake libltdl-dev - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From 00a47ca5c91c1b914c65458ad1297e180f042869 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 11:55:32 -0500 Subject: [PATCH 25/40] try centos --- .github/workflows/zoo_helper.workflow.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index f724d9dd3..01b57bf82 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -9,13 +9,13 @@ env: jobs: build-zoo-helper: - runs-on: ubuntu-latest + runs-on: centos-latest steps: - name: Cache .hunter folder uses: actions/cache@v3 with: path: ~/.hunter - key: hunter-ubuntu-latest-v3-develop + key: hunter-centos-latest-v3-develop # Update cache key for CentOS - name: Export GitHub Actions cache environment variables uses: actions/github-script@v7 @@ -30,10 +30,10 @@ jobs: - name: Install dependencies run: | - sudo apt update - sudo apt install libusb-1.0-0-dev pkg-config bison autoconf libtool libxi-dev libxtst-dev - sudo apt install libxrandr-dev libx11-dev libxft-dev libxext-dev nasm flex libudev-dev - sudo apt install build-essential automake libltdl-dev + sudo yum update -y + sudo yum install -y libusb-devel pkgconfig bison autoconf libtool libXi-devel libXtst-devel + sudo yum install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel + sudo yum install -y gcc-c++ automake libtool-ltdl-devel - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON @@ -47,5 +47,4 @@ jobs: env: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} - ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} - + ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} \ No newline at end of file From 9ed5b5c5f516654f962a169a6fdc5a7e3f24208f Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 13:55:46 -0500 Subject: [PATCH 26/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 01b57bf82..0d121dc14 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -9,13 +9,13 @@ env: jobs: build-zoo-helper: - runs-on: centos-latest + runs-on: almalinux-8 steps: - name: Cache .hunter folder uses: actions/cache@v3 with: path: ~/.hunter - key: hunter-centos-latest-v3-develop # Update cache key for CentOS + key: hunter-almalinux-8-v3-develop - name: Export GitHub Actions cache environment variables uses: actions/github-script@v7 @@ -30,10 +30,10 @@ jobs: - name: Install dependencies run: | - sudo yum update -y - sudo yum install -y libusb-devel pkgconfig bison autoconf libtool libXi-devel libXtst-devel - sudo yum install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel - sudo yum install -y gcc-c++ automake libtool-ltdl-devel + sudo dnf update -y + sudo dnf install -y libusb-devel pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel + sudo dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel + sudo dnf install -y gcc-c++ automake libtool-ltdl-devel - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON @@ -47,4 +47,4 @@ jobs: env: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} - ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} \ No newline at end of file + ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} From 0179850d0f7e1a14ad1b29a76dec04da7b87ab95 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 14:47:22 -0500 Subject: [PATCH 27/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 0d121dc14..da82008c4 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -30,11 +30,13 @@ jobs: - name: Install dependencies run: | - sudo dnf update -y - sudo dnf install -y libusb-devel pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel - sudo dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel - sudo dnf install -y gcc-c++ automake libtool-ltdl-devel - + dnf update -y + dnf install -y libusb-devel pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake git zip perl-core python39 + dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel + dnf install -y gcc-c++ automake libtool-ltdl-devel wget + wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install # install nasm - build from source + pip3 install jinja2 + - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON From c5e41de38beae6c00b00a8650313491904160ed5 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 15:08:39 -0500 Subject: [PATCH 28/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index da82008c4..f132e8ff4 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -31,18 +31,21 @@ jobs: - name: Install dependencies run: | dnf update -y - dnf install -y libusb-devel pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake git zip perl-core python39 - dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel nasm flex systemd-devel + dnf install -y pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake git zip perl-core python39 + dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel flex systemd-devel dnf install -y gcc-c++ automake libtool-ltdl-devel wget - wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install # install nasm - build from source + wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install && cd .. # install nasm - build from source pip3 install jinja2 - + - name: Configure project - run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=Release - name: Build zoo_helper run: cmake --build build --target zoo_helper --parallel 4 + - name: Strip zoo_helper + run: strip ./build/zoo_helper # Shrinks the size of the binary a little bit by removing symbols: https://www.man7.org/linux/man-pages/man1/strip.1.html + - name: Upload zoo_helper to artifactory run: | bash ./ci/upload-artifactory-zoo-helper.sh From e754c9d9f7bc12648aafecd2b73115e2727468f0 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 15:32:08 -0500 Subject: [PATCH 29/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 61 +++++++++++++++++++++-- ci/upload-artifactory-zoo-helper.sh | 2 +- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index f132e8ff4..2370f30da 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -8,14 +8,16 @@ env: VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" jobs: - build-zoo-helper: - runs-on: almalinux-8 + build-zoo-helper-x86_64: + runs-on: ubuntu-latest + container: + image: almalinux:8 steps: - name: Cache .hunter folder uses: actions/cache@v3 with: path: ~/.hunter - key: hunter-almalinux-8-v3-develop + key: hunter-almalinux-8-v3-develop-x86_64 - name: Export GitHub Actions cache environment variables uses: actions/github-script@v7 @@ -53,3 +55,56 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + ARCH: x86_64 + + build-zoo-helper-arm64: + runs-on: [self-hosted, linux, ARM64] + container: + image: arm64v8/almalinux:8 + # Mount local hunter cache directory, instead of transfering to Github and back + volumes: + - /.hunter:/github/home/.hunter + steps: + - name: Cache .hunter folder + uses: actions/cache@v3 + with: + path: ~/.hunter + key: hunter-almalinux-8-v3-develop-arm64 + + - 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 || ''); + + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Install dependencies + run: | + dnf update -y + dnf install -y pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake git zip perl-core python39 + dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel flex systemd-devel + dnf install -y gcc-c++ automake libtool-ltdl-devel wget + wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install && cd .. # install nasm - build from source + pip3 install jinja2 + + - name: Configure project + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=Release + + - name: Build zoo_helper + run: cmake --build build --target zoo_helper --parallel 4 + + - name: Strip zoo_helper + run: strip ./build/zoo_helper # Shrinks the size of the binary a little bit by removing symbols: https://www.man7.org/linux/man-pages/man1/strip.1.html + + - name: Upload zoo_helper to artifactory + run: | + bash ./ci/upload-artifactory-zoo-helper.sh + env: + ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} + ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} + ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} + ARCH: arm64 diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index 7352f6732..2ba4e91b6 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -4,7 +4,7 @@ curl -fL https://getcli.jfrog.io | sh # Set paths -export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper +export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper/$ARCH export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper # Get git hash From 47a6fa92c661c24fa29c35de29d7485bcb3c8fde Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 15:35:31 -0500 Subject: [PATCH 30/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 2370f30da..812ad250e 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -19,6 +19,9 @@ jobs: path: ~/.hunter key: hunter-almalinux-8-v3-develop-x86_64 + - name: Install git + run: dnf install -y git + - name: Export GitHub Actions cache environment variables uses: actions/github-script@v7 with: @@ -33,7 +36,7 @@ jobs: - name: Install dependencies run: | dnf update -y - dnf install -y pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake git zip perl-core python39 + dnf install -y pkgconf-pkg-config bison autoconf libtool libXi-devel libXtst-devel cmake zip perl-core python39 dnf install -y libXrandr-devel libX11-devel libXft-devel libXext-devel flex systemd-devel dnf install -y gcc-c++ automake libtool-ltdl-devel wget wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install && cd .. # install nasm - build from source @@ -70,6 +73,9 @@ jobs: with: path: ~/.hunter key: hunter-almalinux-8-v3-develop-arm64 + + - name: Install git + run: dnf install -y git - name: Export GitHub Actions cache environment variables uses: actions/github-script@v7 From 2a1fa08545d55d98122c16df3aec3fbbbf34ff22 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 15:44:38 -0500 Subject: [PATCH 31/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 812ad250e..7ee7d447f 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -96,6 +96,7 @@ jobs: dnf install -y gcc-c++ automake libtool-ltdl-devel wget wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && tar -xzf nasm-2.16.01.tar.gz && cd nasm-2.16.01 && ./configure && make && make install && cd .. # install nasm - build from source pip3 install jinja2 + pip3 install ninja # ninja is needed for cmake on arm64 - name: Configure project run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=Release From d17dbb0393d347c310cc6b9dcfff3f73b97dad6a Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 15:54:35 -0500 Subject: [PATCH 32/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index 7ee7d447f..c9f25de7e 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -67,13 +67,12 @@ jobs: # Mount local hunter cache directory, instead of transfering to Github and back volumes: - /.hunter:/github/home/.hunter + env: + # workaround required for cache@v3, https://github.com/actions/cache/issues/1428 + VCPKG_FORCE_SYSTEM_BINARIES: "1" # Needed so vpckg can bootstrap itself + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + VCPKG_MAX_CONCURRENCY: "2" steps: - - name: Cache .hunter folder - uses: actions/cache@v3 - with: - path: ~/.hunter - key: hunter-almalinux-8-v3-develop-arm64 - - name: Install git run: dnf install -y git From 371432268c1aab9db3ac4c69e3160efa9b3657cb Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 16:19:33 -0500 Subject: [PATCH 33/40] try almalinux --- .github/workflows/zoo_helper.workflow.yml | 8 ++++---- ci/upload-artifactory-zoo-helper.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index c9f25de7e..f5aa7b3a2 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -8,7 +8,7 @@ env: VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" jobs: - build-zoo-helper-x86_64: + build-zoo-helper-linux-x86_64: runs-on: ubuntu-latest container: image: almalinux:8 @@ -58,9 +58,9 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} - ARCH: x86_64 + ZOO_HELPER_PLATFORM: linux-x86_64 - build-zoo-helper-arm64: + build-zoo-helper-linux-arm64: runs-on: [self-hosted, linux, ARM64] container: image: arm64v8/almalinux:8 @@ -113,4 +113,4 @@ jobs: ARTIFACTORY_URL: ${{ secrets.ARTIFACTORY_URL }} ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASS: ${{ secrets.ARTIFACTORY_PASS }} - ARCH: arm64 + ZOO_HELPER_PLATFORM: linux-arm64 diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index 2ba4e91b6..da801fcdf 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -4,7 +4,7 @@ curl -fL https://getcli.jfrog.io | sh # Set paths -export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper/$ARCH +export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper/$ZOO_HELPER_PLATFORM export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper # Get git hash From dc7557ab9ad72b273ee9672634aa544e566f1a67 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 16:45:09 -0500 Subject: [PATCH 34/40] try almalinux --- ci/upload-artifactory-zoo-helper.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index da801fcdf..547beb9cf 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -10,6 +10,11 @@ export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper # Get git hash export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD) +echo "PATH_PREFIX: $PATH_PREFIX" +echo "ZOO_HELPER_BINARY_LOCAL_PATH: $ZOO_HELPER_BINARY_LOCAL_PATH" +echo "ZOO_HELPER_GIT_HASH: $ZOO_HELPER_GIT_HASH" +echo "zoo_helper binary size: $(du -sh $ZOO_HELPER_BINARY_LOCAL_PATH)" + # Upload binary to artifactory ./jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS -./jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" +./jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" \ No newline at end of file From eee1a3c1704aacd639ea8e6da7c8f8b8553a0481 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 16:55:43 -0500 Subject: [PATCH 35/40] fix hashes --- ci/upload-artifactory-zoo-helper.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index 547beb9cf..0d9fd8246 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -8,12 +8,15 @@ export PATH_PREFIX=luxonis-depthai-helper-binaries/zoo_helper/$ZOO_HELPER_PLATFO export ZOO_HELPER_BINARY_LOCAL_PATH=build/zoo_helper # Get git hash +git config --global --add safe.directory $(pwd) export ZOO_HELPER_GIT_HASH=$(git rev-parse HEAD) +echo "----------------------------------------" echo "PATH_PREFIX: $PATH_PREFIX" echo "ZOO_HELPER_BINARY_LOCAL_PATH: $ZOO_HELPER_BINARY_LOCAL_PATH" echo "ZOO_HELPER_GIT_HASH: $ZOO_HELPER_GIT_HASH" echo "zoo_helper binary size: $(du -sh $ZOO_HELPER_BINARY_LOCAL_PATH)" +echo "----------------------------------------" # Upload binary to artifactory ./jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS From e7e4045571bf9d8e03f7ab441c943608b554c891 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 18:24:13 -0500 Subject: [PATCH 36/40] Fix find_package error --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c5e84246..d03ce912c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,7 +504,6 @@ set_target_properties(${TARGET_CORE_NAME} PROPERTIES EXPORT_NAME ${TARGET_CORE_A list(APPEND targets_to_export ${TARGET_CORE_NAME}) # Add model_zoo helper binary -find_package(argparse REQUIRED) find_package(fmt REQUIRED) find_package(yaml-cpp REQUIRED) set(ZOO_HELPER_SOURCES @@ -515,7 +514,6 @@ set(ZOO_HELPER_SOURCES src/utility/Logging.cpp ) set(ZOO_HELPER_LINK_LIBRARIES - argparse::argparse nlohmann_json::nlohmann_json fmt::fmt yaml-cpp::yaml-cpp From 2313b9cc447eeb4c1b5e12783a1a1a1fd46d10c0 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 21 Jan 2025 18:47:39 -0500 Subject: [PATCH 37/40] Set C++17 as standard --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d03ce912c..8a25cc43c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -542,6 +542,17 @@ target_include_directories(zoo_helper SYSTEM "$" ) +# Set compiler features (c++17), and disables extensions (g++17) +set_property(TARGET zoo_helper PROPERTY CXX_STANDARD 17) +set_property(TARGET zoo_helper PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET zoo_helper PROPERTY CXX_EXTENSIONS OFF) +# Add interface transitive property (C++17) +if(${CMAKE_VERSION} VERSION_LESS "3.8.0") + target_compile_features(zoo_helper INTERFACE cxx_generic_lambdas) +else() + target_compile_features(zoo_helper INTERFACE cxx_std_17) +endif() + list(APPEND targets_to_export zoo_helper) # Add default flags to core From 76ab7b84e311b8e2e33340cd145c55b2ca01de03 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Wed, 22 Jan 2025 14:18:32 -0500 Subject: [PATCH 38/40] Don't care about perf, just minimize executable size. --- .github/workflows/zoo_helper.workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/zoo_helper.workflow.yml b/.github/workflows/zoo_helper.workflow.yml index f5aa7b3a2..349b692c8 100644 --- a/.github/workflows/zoo_helper.workflow.yml +++ b/.github/workflows/zoo_helper.workflow.yml @@ -43,7 +43,7 @@ jobs: pip3 install jinja2 - name: Configure project - run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=Release + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=MinSizeRel - name: Build zoo_helper run: cmake --build build --target zoo_helper --parallel 4 @@ -98,7 +98,7 @@ jobs: pip3 install ninja # ninja is needed for cmake on arm64 - name: Configure project - run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=Release + run: cmake -S . -B build -DDEPTHAI_ENABLE_CURL=ON -DCMAKE_BUILD_TYPE=MinSizeRel - name: Build zoo_helper run: cmake --build build --target zoo_helper --parallel 4 From 15f64fd7a4b692b100200808c96c4f26fcda2cb3 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Sun, 2 Feb 2025 19:20:54 -0500 Subject: [PATCH 39/40] Add missing empty line --- ci/upload-artifactory-zoo-helper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/upload-artifactory-zoo-helper.sh b/ci/upload-artifactory-zoo-helper.sh index 0d9fd8246..5908eac93 100644 --- a/ci/upload-artifactory-zoo-helper.sh +++ b/ci/upload-artifactory-zoo-helper.sh @@ -20,4 +20,4 @@ echo "----------------------------------------" # Upload binary to artifactory ./jfrog config add --artifactory-url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS -./jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" \ No newline at end of file +./jfrog rt u "$ZOO_HELPER_BINARY_LOCAL_PATH" "$PATH_PREFIX/$ZOO_HELPER_GIT_HASH/" From 997bc7de696c65e9aea21a58c0c1eab0032cc19c Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Sun, 2 Feb 2025 19:36:58 -0500 Subject: [PATCH 40/40] Add defaults, format, add api_key as a parameter --- src/modelzoo/zoo_helper.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/modelzoo/zoo_helper.cpp b/src/modelzoo/zoo_helper.cpp index 7e4e4f8dd..96f05ca0e 100644 --- a/src/modelzoo/zoo_helper.cpp +++ b/src/modelzoo/zoo_helper.cpp @@ -1,19 +1,26 @@ -#include #include +#include #include "depthai/modelzoo/Zoo.hpp" int main(int argc, char* argv[]) { + // Initialize parser + argparse::ArgumentParser program("DepthAI Model Zoo Helper"); // Add arguments - argparse::ArgumentParser program("DepthAI Model Zoo Helper"); - program.add_argument("--yaml_folder").help("Folder with YAML files describing models to download"); - program.add_argument("--cache_folder").help("Cache folder to download models into"); + const std::string DEFAULT_YAML_FOLDER = "."; + program.add_argument("--yaml_folder").default_value(DEFAULT_YAML_FOLDER).help("Folder with YAML files describing models to download"); + + const std::string DEFAULT_CACHE_FOLDER = dai::MODEL_ZOO_DEFAULT_CACHE_DIRECTORY; + program.add_argument("--cache_folder").default_value(DEFAULT_CACHE_FOLDER).help("Cache folder to download models into"); + + const std::string DEFAULT_API_KEY = ""; + program.add_argument("--api_key").default_value(DEFAULT_API_KEY).help("API key to use for downloading models"); // Parse arguments try { program.parse_args(argc, argv); - } catch (const std::runtime_error& err) { + } catch(const std::runtime_error& err) { std::cerr << err.what() << std::endl; std::cerr << program; return EXIT_FAILURE; @@ -22,13 +29,17 @@ int main(int argc, char* argv[]) { // Unpack arguments auto yamlFolder = program.get("--yaml_folder"); auto cacheFolder = program.get("--cache_folder"); + auto apiKey = program.get("--api_key"); // Print arguments std::cout << "Downloading models defined in yaml files in folder: " << yamlFolder << std::endl; std::cout << "Downloading models into cache folder: " << cacheFolder << std::endl; + if(!apiKey.empty()) { + std::cout << "Using API key: " << apiKey << std::endl; + } // Download models - dai::downloadModelsFromZoo(yamlFolder, cacheFolder); + dai::downloadModelsFromZoo(yamlFolder, cacheFolder, apiKey); return EXIT_SUCCESS; }