Add workflow
Committed 58561d
index 0000000..ec754dc
--- /dev/null
+name: analyze
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+jobs:
+ analyze:
+ strategy:
+ matrix:
+ python-version: ["3.10"]
+ runs-on: "ubuntu-latest"
+ steps:
+ - name: Install graphviz
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y graphviz
+ - uses: actions/checkout@v3
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Remove development dependencies
+ run: sed -i '/\[tool.poetry.group.dev.dependencies\]/,/\[/d' pyproject.toml
+ - name: Install Poetry
+ uses: snok/install-poetry@v1
+ with:
+ version: 1.2.2
+ virtualenvs-in-project: true
+ - name: Install dependencies
+ run: poetry install --no-interaction --no-root
+ - name: Install library
+ run: poetry install --no-interaction
+ - uses: psf/black@stable
+ with:
+ options: "--check --verbose"
+ src: "."
+ version: "23.7"
+ - uses: isort/isort-action@v1
+ with:
+ configuration: "--profile black"
+ - run: echo "$(poetry env info --path)/bin" >> $GITHUB_PATH
+ - uses: jakebailey/pyright-action@v1
+ - name: Run tests
+ run: poetry run gmpg test
+ - name: Parse and analyze API
+ run: poetry run gmpg analyze
+ - name: Generate dependency graph
+ run: poetry run gmpg graph
+ - uses: actions/upload-artifact@v3
+ with:
+ name: analysis
+ path: |
+ test_coverage.xml
+ test_results.xml
+ api_python.json
+ deps.svg