diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 1c1d2cd76..c437e98ee 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -79,6 +79,10 @@ jobs: python_tests: runs-on: ubuntu-latest name: Python Tests + strategy: + fail-fast: false + matrix: + platform: [amd64,arm64] steps: - name: Check out code uses: actions/checkout@v3 @@ -90,13 +94,22 @@ jobs: - name: Build web run: npm run build working-directory: ./web + - run: make version - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build - run: make + uses: docker/build-push-action@v4 + with: + context: . + push: false + load: true + platforms: linux/${{ matrix.platform }} + tags: | + frigate:${{ matrix.platform }} + target: frigate - name: Run mypy - run: docker run --rm --entrypoint=python3 frigate:latest -u -m mypy --config-file frigate/mypy.ini frigate + run: docker run --platform linux/${{ matrix.platform }} --rm --entrypoint=python3 frigate:${{ matrix.platform }} -u -m mypy --config-file frigate/mypy.ini frigate - name: Run tests - run: docker run --rm --entrypoint=python3 frigate:latest -u -m unittest + run: docker run --platform linux/${{ matrix.platform }} --rm --entrypoint=python3 frigate:${{ matrix.platform }} -u -m unittest diff --git a/frigate/detectors/plugins/cpu_tfl.py b/frigate/detectors/plugins/cpu_tfl.py index b22ac9a54..a831a9190 100644 --- a/frigate/detectors/plugins/cpu_tfl.py +++ b/frigate/detectors/plugins/cpu_tfl.py @@ -3,7 +3,7 @@ import numpy as np from frigate.detectors.detection_api import DetectionApi from frigate.detectors.detector_config import BaseDetectorConfig -from typing import Literal +from typing_extensions import Literal from pydantic import Extra, Field try: diff --git a/frigate/detectors/plugins/deepstack.py b/frigate/detectors/plugins/deepstack.py index 9f3d323a2..639cd396c 100644 --- a/frigate/detectors/plugins/deepstack.py +++ b/frigate/detectors/plugins/deepstack.py @@ -5,7 +5,7 @@ import io from frigate.detectors.detection_api import DetectionApi from frigate.detectors.detector_config import BaseDetectorConfig -from typing import Literal +from typing_extensions import Literal from pydantic import Extra, Field from PIL import Image @@ -50,7 +50,10 @@ class DeepStack(DetectionApi): image_bytes = output.getvalue() data = {"api_key": self.api_key} response = requests.post( - self.api_url, files={"image": image_bytes}, timeout=self.api_timeout + self.api_url, + data=data, + files={"image": image_bytes}, + timeout=self.api_timeout, ) response_json = response.json() detections = np.zeros((20, 6), np.float32) diff --git a/frigate/detectors/plugins/edgetpu_tfl.py b/frigate/detectors/plugins/edgetpu_tfl.py index 6837adcb0..d671dea4d 100644 --- a/frigate/detectors/plugins/edgetpu_tfl.py +++ b/frigate/detectors/plugins/edgetpu_tfl.py @@ -3,7 +3,7 @@ import numpy as np from frigate.detectors.detection_api import DetectionApi from frigate.detectors.detector_config import BaseDetectorConfig -from typing import Literal +from typing_extensions import Literal from pydantic import Extra, Field try: diff --git a/frigate/detectors/plugins/openvino.py b/frigate/detectors/plugins/openvino.py index 993b2b8ff..fe87ac567 100644 --- a/frigate/detectors/plugins/openvino.py +++ b/frigate/detectors/plugins/openvino.py @@ -4,7 +4,7 @@ import openvino.runtime as ov from frigate.detectors.detection_api import DetectionApi from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum -from typing import Literal +from typing_extensions import Literal from pydantic import Extra, Field diff --git a/frigate/detectors/plugins/tensorrt.py b/frigate/detectors/plugins/tensorrt.py index 2d2a6788f..ac0c4befc 100644 --- a/frigate/detectors/plugins/tensorrt.py +++ b/frigate/detectors/plugins/tensorrt.py @@ -13,7 +13,7 @@ except ModuleNotFoundError as e: from frigate.detectors.detection_api import DetectionApi from frigate.detectors.detector_config import BaseDetectorConfig -from typing import Literal +from typing_extensions import Literal from pydantic import Field logger = logging.getLogger(__name__)