You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- 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
|