From 86b77e18057aa002daf15f092f5ce5e2a9c0e72d Mon Sep 17 00:00:00 2001 From: Jean Elsner Date: Thu, 16 Nov 2023 10:35:45 +0100 Subject: [PATCH] Update ci --- .github/workflows/doc.yml | 4 +- .github/workflows/main.yml | 79 +++++++++++++++++++ .../workflows/{test.yml => pull_request.yml} | 31 +++++--- .github/workflows/{deploy.yml => release.yml} | 0 pyproject.toml | 6 +- 5 files changed, 107 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/main.yml rename .github/workflows/{test.yml => pull_request.yml} (63%) rename .github/workflows/{deploy.yml => release.yml} (100%) diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index cb51b37..3931d2f 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -15,9 +15,9 @@ jobs: name: Build documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python 3.10 - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: "3.10" - name: Install dependencies diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..f474157 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,79 @@ +name: Check commit + +on: + push: + branches: ["main"] + workflow_dispatch: + +jobs: + unittest: + name: Test on Python ${{ matrix.python-version }} + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10"] + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pyopengl==3.1.6 + pip install .[test] + - name: Test with pytest + run: | + pytest ./tests/ + upload: + name: Upload coverage report + needs: unittest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pyopengl==3.1.6 + pip install .[test] + - name: Produce coverage report + run: | + pytest --cov dm_robotics.panda --cov-report xml:coverage.xml ./tests/ + - name: Upload coverage report to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + linting: + name: Linting + needs: unittest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install .[lint] + - name: Lint with pylint + run: | + mkdir ./pylint + pylint --rcfile .pylintrc --output-format=text --exit-zero src/ | tee ./pylint/pylint.log + PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log) + anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./pylint + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/pull_request.yml similarity index 63% rename from .github/workflows/test.yml rename to .github/workflows/pull_request.yml index 9401326..d051312 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/pull_request.yml @@ -1,10 +1,7 @@ -name: Run tests +name: Check pull request on: - push: - branches: ["main"] pull_request: - workflow_dispatch: jobs: unittest: @@ -12,11 +9,11 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.8, 3.9, "3.10"] + python-version: ["3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -32,9 +29,9 @@ jobs: needs: unittest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python 3.10 - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: "3.10" - name: Install dependencies @@ -49,3 +46,19 @@ jobs: uses: codecov/codecov-action@v3 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + linting: + name: Linting with pylint + needs: unittest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install .[lint] + - name: Run pylint + run: pylint --rcfile .pylintrc src/ diff --git a/.github/workflows/deploy.yml b/.github/workflows/release.yml similarity index 100% rename from .github/workflows/deploy.yml rename to .github/workflows/release.yml diff --git a/pyproject.toml b/pyproject.toml index fa2d77c..1a19c30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,11 +36,13 @@ classifiers = [ [project.optional-dependencies] test = [ - "pylint", - "pylint-exit", "pytest", "pytest-cov", +] + +lint = [ "anybadge", + "pylint", ] doc = [