Skip to content

Commit

Permalink
Merge pull request #604 from dora-rs/add-ci-cd-to-node-hub
Browse files Browse the repository at this point in the history
Add a CI/CD for the node-hub
  • Loading branch information
phil-opp authored Jul 29, 2024
2 parents 9e7f85f + 1670890 commit bd3f8fa
Show file tree
Hide file tree
Showing 12 changed files with 116 additions and 15 deletions.
100 changes: 100 additions & 0 deletions .github/workflows/node-hub-ci-cd.yml
Original file line number Diff line number Diff line change
@@ -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
4 changes: 0 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions node-hub/opencv-plot/opencv_plot/main.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import os
import argparse
import cv2
import os

import cv2
import numpy as np
import pyarrow as pa

Expand Down
2 changes: 1 addition & 1 deletion node-hub/opencv-plot/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "opencv-plot"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <[email protected]>",
"Enzo Le Van <[email protected]>",
Expand Down
2 changes: 2 additions & 0 deletions node-hub/opencv-plot/tests/test_opencv_plot.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def test_placeholder():
pass
Empty file.
7 changes: 3 additions & 4 deletions node-hub/opencv-video-capture/opencv_video_capture/main.py
Original file line number Diff line number Diff line change
@@ -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


Expand Down
2 changes: 1 addition & 1 deletion node-hub/opencv-video-capture/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "opencv-video-capture"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <[email protected]>",
"Enzo Le Van <[email protected]>",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def test_placeholder():
pass
2 changes: 1 addition & 1 deletion node-hub/ultralytics-yolo/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ultralytics-yolo"
version = "0.1"
version = "0.3.5"
authors = [
"Haixuan Xavier Tao <[email protected]>",
"Enzo Le Van <[email protected]>",
Expand Down
2 changes: 2 additions & 0 deletions node-hub/ultralytics-yolo/tests/test_ultralytics_yolo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def test_placeholder():
pass
4 changes: 2 additions & 2 deletions node-hub/ultralytics-yolo/ultralytics_yolo/main.py
Original file line number Diff line number Diff line change
@@ -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():
Expand Down

0 comments on commit bd3f8fa

Please sign in to comment.