Skip to content
Merged
Show file tree
Hide file tree
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
74 changes: 74 additions & 0 deletions .github/workflows/docker.jetson.7.2.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Build and Push Jetson 7.2.0 Media Container

permissions:
contents: read

on:
release:
types: [created]
push:
branches: [main]
paths:
- ".github/workflows/docker.jetson.7.2.0.yml"
- "docker/dockerfiles/Dockerfile.media.jetson.7.2.0"
- "docker/native/jetson_tensor_bridge/**"
- "docker/scripts/**"
- "LICENSE"
- "LICENSE.core"
workflow_dispatch:
inputs:
force_push:
type: boolean
description: "Do you want to push the image after building?"
default: false
custom_tag:
type: string
description: "Custom tag to use for the image"
default: ""

env:
VERSION: "0.0.0"
BASE_IMAGE: "roboflow/roboflow-inference-media-jetson-7.2.0"

jobs:
docker:
runs-on:
labels: depot-ubuntu-24.04-4
group: public-depot
timeout-minutes: 180
permissions:
id-token: write
contents: read
steps:
- name: Login to Docker Hub
if: ${{ github.event_name == 'release' || inputs.force_push }}
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@v6
- name: Read version from file
run: echo "VERSION=$(DISABLE_VERSION_CHECK=true python ./inference/core/version.py)" >> "$GITHUB_ENV"
- name: Determine image tags
id: tags
uses: ./.github/actions/determine-tags
with:
custom_tag: ${{ inputs.custom_tag }}
version: ${{ env.VERSION }}
base_image: ${{ env.BASE_IMAGE }}
force_push: ${{ inputs.force_push }}
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: Build image
uses: depot/build-push-action@v1
with:
project: v1xzfwkc4b
context: .
file: ./docker/dockerfiles/Dockerfile.media.jetson.7.2.0
platforms: linux/arm64
push: ${{ github.event_name == 'release' || inputs.force_push }}
save: ${{ github.event_name != 'release' && !inputs.force_push }}
save-tag: ${{ github.event_name != 'release' && !inputs.force_push && format('media-jp72-{0}', github.sha) || '' }}
tags: ${{ steps.tags.outputs.image_tags }}
27 changes: 26 additions & 1 deletion .github/workflows/test.nvidia_t4.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,32 @@ jobs:
- name: �🔨 Build and Push Test Docker - GPU
run: |
docker build -t roboflow/roboflow-inference-server-gpu:test -f docker/dockerfiles/Dockerfile.onnx.gpu .


- name: Verify CUDA OpenCV - GPU
run: |
docker run --rm --gpus all --entrypoint sh \
-e OPENCV_REQUIRE_CUDA_BUILD=true \
-e OPENCV_REQUIRE_CUDA_RUNTIME=true \
-v "$PWD/docker/scripts/verify_opencv.sh:/tmp/verify_opencv:ro" \
roboflow/roboflow-inference-server-gpu:test \
/tmp/verify_opencv

- name: Verify NVIDIA GStreamer codecs - GPU
run: |
docker run --rm --gpus all --entrypoint sh \
-e GSTREAMER_REQUIRE_NVCODEC=true \
-e GSTREAMER_REQUIRE_NVCODEC_RUNTIME=true \
-v "$PWD/docker/scripts/verify_gstreamer.sh:/tmp/verify_gstreamer:ro" \
roboflow/roboflow-inference-server-gpu:test \
/tmp/verify_gstreamer

- name: Verify CUDA GStreamer tensor bridge - GPU
run: |
docker run --rm --gpus all --entrypoint python3 \
-v "$PWD/docker/scripts/verify_gstreamer_cuda_tensor_runtime.py:/tmp/verify_gstreamer_cuda_tensor_runtime.py:ro" \
roboflow/roboflow-inference-server-gpu:test \
/tmp/verify_gstreamer_cuda_tensor_runtime.py

- name: 🔋 Start Test Docker without Torch Preprocessing - GPU
if: ${{ github.event.inputs.test_name == '' || github.event.inputs.test_name == 'regression_without_torch' }}
run: |
Expand Down
10 changes: 0 additions & 10 deletions development/stream_interface/run_workflow_on_video.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,9 @@
--model-id yolov8n-640
"""

# jetson_utils must be imported before anything that initialises CUDA or GStreamer
# state (cv2/torch, pulled in below via `inference`), so it comes first. It only
# exists on the Jetson images — on dGPU builds the import fails and the hardware
# decoder probes in VideoSource handle the absence at runtime.
try:
import jetson_utils # noqa: F401
except Exception: # noqa: BLE001 - any failure means "not a Jetson build"
jetson_utils = None

import argparse
import json
import os
import sys
import time
from collections import deque
from typing import Any, Dict, List, Optional
Expand Down
Loading