Browse Source

Merge pull request #604 from dora-rs/add-ci-cd-to-node-hub

Add a CI/CD for the node-hub
tags/v0.3.6-rc0
Philipp Oppermann GitHub 1 year ago
parent
commit
bd3f8fafd5
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
12 changed files with 116 additions and 15 deletions
  1. +100
    -0
      .github/workflows/node-hub-ci-cd.yml
  2. +0
    -4
      .github/workflows/release.yml
  3. +2
    -2
      node-hub/opencv-plot/opencv_plot/main.py
  4. +1
    -1
      node-hub/opencv-plot/pyproject.toml
  5. +2
    -0
      node-hub/opencv-plot/tests/test_opencv_plot.py
  6. +0
    -0
      node-hub/opencv-video-capture/opencv_video_capture/__init__.py
  7. +3
    -4
      node-hub/opencv-video-capture/opencv_video_capture/main.py
  8. +1
    -1
      node-hub/opencv-video-capture/pyproject.toml
  9. +2
    -0
      node-hub/opencv-video-capture/tests/test_opencv_video_capture.py
  10. +1
    -1
      node-hub/ultralytics-yolo/pyproject.toml
  11. +2
    -0
      node-hub/ultralytics-yolo/tests/test_ultralytics_yolo.py
  12. +2
    -2
      node-hub/ultralytics-yolo/ultralytics_yolo/main.py

+ 100
- 0
.github/workflows/node-hub-ci-cd.yml View File

@@ -0,0 +1,100 @@
name: node-hub

on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types: [published]

jobs:
ci:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.10"

- name: Set up Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH
pip install black pylint pytest

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Run Linting and Tests
run: |
for dir in node-hub/*/ ; do
if [ -d "$dir" ]; then
if [ -f "$dir/pyproject.toml" ]; then
echo "Running linting and tests for Python project in $dir..."
(cd "$dir" && pip install .)
(cd "$dir" && poetry run black --check .)
(cd "$dir" && poetry run pylint --disable=C,R --ignored-modules=cv2 **/*.py)
(cd "$dir" && poetry run pytest)
fi
if [ -f "$dir/Cargo.toml" ]; then
echo "Running build and tests for Rust project in $dir..."
(cd "$dir" && cargo build)
(cd "$dir" && cargo test)
fi
fi
done

publish:
needs: [ci]
runs-on: ubuntu-latest
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/')

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.10"

- name: Set up Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable

- name: Publish Projects
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_PASS }}
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_PASS }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
for dir in node-hub/*/ ; do
if [ -d "$dir" ]; then
if [ -f "$dir/pyproject.toml" ]; then
echo "Publishing $dir using Poetry..."
(cd "$dir" && poetry publish)
fi
if [ -f "$dir/Cargo.toml" ]; then
echo "Publishing $dir using Cargo..."
(cd "$dir" && cargo publish)
fi
fi
done

+ 0
- 4
.github/workflows/release.yml View File

@@ -79,10 +79,6 @@ jobs:
cargo publish -p dora-daemon --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
cargo publish -p dora-cli --token ${{ secrets.CARGO_REGISTRY_TOKEN }}

# Publish tool nodes
cargo publish -p dora-record --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
cargo publish -p dora-rerun --token ${{ secrets.CARGO_REGISTRY_TOKEN }}

unix:
runs-on: ${{ matrix.platform.runner }}
strategy:


+ 2
- 2
node-hub/opencv-plot/opencv_plot/main.py View File

@@ -1,7 +1,7 @@
import os
import argparse
import cv2
import os

import cv2
import numpy as np
import pyarrow as pa



+ 1
- 1
node-hub/opencv-plot/pyproject.toml View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "opencv-plot"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",


+ 2
- 0
node-hub/opencv-plot/tests/test_opencv_plot.py View File

@@ -0,0 +1,2 @@
def test_placeholder():
pass

+ 0
- 0
node-hub/opencv-video-capture/opencv_video_capture/__init__.py View File


+ 3
- 4
node-hub/opencv-video-capture/opencv_video_capture/main.py View File

@@ -1,14 +1,13 @@
import os
import argparse
import cv2
import os
import time

import cv2
import numpy as np
import pyarrow as pa

from dora import Node

import time

RUNNER_CI = True if os.getenv("CI") == "true" else False




+ 1
- 1
node-hub/opencv-video-capture/pyproject.toml View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "opencv-video-capture"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",


+ 2
- 0
node-hub/opencv-video-capture/tests/test_opencv_video_capture.py View File

@@ -0,0 +1,2 @@
def test_placeholder():
pass

+ 1
- 1
node-hub/ultralytics-yolo/pyproject.toml View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "ultralytics-yolo"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",


+ 2
- 0
node-hub/ultralytics-yolo/tests/test_ultralytics_yolo.py View File

@@ -0,0 +1,2 @@
def test_placeholder():
pass

+ 2
- 2
node-hub/ultralytics-yolo/ultralytics_yolo/main.py View File

@@ -1,11 +1,11 @@
import os
import argparse
import os

import numpy as np
import pyarrow as pa
from ultralytics import YOLO

from dora import Node
from ultralytics import YOLO


def main():


Loading…
Cancel
Save