diff --git a/.github/workflows/node-hub-ci-cd.yml b/.github/workflows/node-hub-ci-cd.yml index 40624f7e..7b0a4819 100644 --- a/.github/workflows/node-hub-ci-cd.yml +++ b/.github/workflows/node-hub-ci-cd.yml @@ -104,9 +104,14 @@ jobs: 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 --build) + if [[ -f "$dir/Cargo.toml" && -f "$dir/pyproject.toml" ]]; then + echo "Publishing $dir using maturin..." + (cd "$dir" && poetry publish) + else + if [ -f "$dir/pyproject.toml" ]; then + echo "Publishing $dir using Poetry..." + (cd "$dir" && poetry publish --build) + fi fi if [ -f "$dir/Cargo.toml" ]; then diff --git a/.github/workflows/node_hub_test.sh b/.github/workflows/node_hub_test.sh index dc2eacfb..8ec373e3 100755 --- a/.github/workflows/node_hub_test.sh +++ b/.github/workflows/node_hub_test.sh @@ -15,18 +15,18 @@ for dir in node-hub/*/ ; do fi 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 + echo "Running build and tests for Rust project in $dir..." + (cd "$dir" && cargo build) + (cd "$dir" && cargo test) + else + 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 + fi fi done diff --git a/.github/workflows/pip-release.yml b/.github/workflows/pip-release.yml index 5c431add..72c17fa2 100644 --- a/.github/workflows/pip-release.yml +++ b/.github/workflows/pip-release.yml @@ -39,6 +39,9 @@ jobs: # target: s390x # - runner: ubuntu-20.04 # target: ppc64le + repository: + - path: apis/python/node + - path: binaries/cli steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -53,21 +56,21 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --zig + args: --release --out dist --zig -i 3.8 manylinux: manylinux_2_28 - working-directory: apis/python/node + working-directory: ${{ matrix.repository.path }} - name: Upload wheels if: github.event_name == 'release' uses: actions/upload-artifact@v4 with: name: wheels-linux-${{ matrix.platform.target }} - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist - name: Upload to release if: github.event_name == 'release' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: apis/python/node/dist/* + file: ${{ matrix.repository.path }}/dist/* tag: ${{ github.ref }} file_glob: true @@ -82,6 +85,9 @@ jobs: target: x86 - runner: ubuntu-22.04 target: aarch64 + repository: + - path: apis/python/node + - path: binaries/cli steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -91,22 +97,22 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist + args: --release --out dist -i 3.8 sccache: "true" manylinux: musllinux_1_2 - working-directory: apis/python/node + working-directory: ${{ matrix.repository.path }} - name: Upload wheels if: github.event_name == 'release' uses: actions/upload-artifact@v4 with: name: wheels-musllinux-${{ matrix.platform.target }} - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist - name: Upload to release if: github.event_name == 'release' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: apis/python/node/dist/* + file: ${{ matrix.repository.path }}/dist/* tag: ${{ github.ref }} file_glob: true @@ -121,6 +127,9 @@ jobs: image_tag: "armv7-musleabihf", }, ] + repository: + - path: apis/python/node + - path: binaries/cli container: image: docker://messense/rust-musl-cross:${{ matrix.platform.image_tag }} env: @@ -136,20 +145,20 @@ jobs: target: ${{ matrix.platform.target }} manylinux: auto container: off - args: --release -o dist - working-directory: apis/python/node + args: --release -o dist -i 3.8 + working-directory: ${{ matrix.repository.path }} - name: Upload wheels if: github.event_name == 'release' uses: actions/upload-artifact@v3 with: name: wheels-musllinux-${{ matrix.platform.target }} - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist - name: Upload to release if: github.event_name == 'release' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: apis/python/node/dist/* + file: ${{ matrix.repository.path }}/dist/* tag: ${{ github.ref }} file_glob: true @@ -160,6 +169,9 @@ jobs: platform: - runner: windows-latest target: x64 + repository: + - path: apis/python/node + - path: binaries/cli steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -170,21 +182,21 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist + args: --release --out dist -i 3.8 sccache: "true" - working-directory: apis/python/node + working-directory: ${{ matrix.repository.path }} - name: Upload wheels if: github.event_name == 'release' uses: actions/upload-artifact@v4 with: name: wheels-windows-${{ matrix.platform.target }} - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist - name: Upload to release if: github.event_name == 'release' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: apis/python/node/dist/* + file: ${{ matrix.repository.path }}/dist/* tag: ${{ github.ref }} file_glob: true @@ -197,6 +209,9 @@ jobs: target: x86_64 - runner: macos-14 target: aarch64 + repository: + - path: apis/python/node + - path: binaries/cli steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -206,26 +221,31 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist + args: --release --out dist -i 3.8 sccache: "true" - working-directory: apis/python/node + working-directory: ${{ matrix.repository.path }} - name: Upload wheels if: github.event_name == 'release' uses: actions/upload-artifact@v4 with: name: wheels-macos-${{ matrix.platform.target }} - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist - name: Upload to release if: github.event_name == 'release' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: apis/python/node/dist/* + file: ${{ matrix.repository.path }}/dist/* tag: ${{ github.ref }} file_glob: true sdist: runs-on: ubuntu-22.04 + strategy: + matrix: + repository: + - path: apis/python/node + - path: binaries/cli steps: - uses: actions/checkout@v3 - name: Build sdist @@ -233,13 +253,13 @@ jobs: with: command: sdist args: --out dist - working-directory: apis/python/node + working-directory: ${{ matrix.repository.path }} - name: Upload sdist if: github.event_name == 'release' uses: actions/upload-artifact@v3 with: name: wheels - path: apis/python/node/dist + path: ${{ matrix.repository.path }}/dist release: name: Release diff --git a/binaries/cli/pyproject.toml b/binaries/cli/pyproject.toml new file mode 100644 index 00000000..6deee792 --- /dev/null +++ b/binaries/cli/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = ["maturin>=0.13.2"] +build-backend = "maturin" + +[project] +name = "dora-rs-cli" diff --git a/node-hub/dora-rerun/pyproject.toml b/node-hub/dora-rerun/pyproject.toml new file mode 100644 index 00000000..c0f314b2 --- /dev/null +++ b/node-hub/dora-rerun/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = ["maturin>=0.13.2"] +build-backend = "maturin" + +[project] +name = "dora-rerun"