feat: add model validation for types #3092
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Unit test | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
workflow_dispatch: | |
env: | |
POETRY_VERSION: 1.4.2 | |
jobs: | |
lint-and-type-check: | |
name: Lint and type-check | |
runs-on: ubuntu-latest | |
env: | |
PYTHON_VERSION: "3.8" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Load cached .local | |
id: cache-poetry | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/.local | |
key: dotlocal-${{ env.POETRY_VERSION }} | |
- name: Install poetry | |
if: steps.cache-poetry.outputs.cache-hit != 'true' | |
run: | | |
curl -sSL https://install.python-poetry.org/ | python - --version ${{ env.POETRY_VERSION }} | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Install Python + Retrieve Poetry dependencies from cache | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: "poetry" | |
- name: Display Python version | |
run: | | |
python -c "import sys; print(sys.version)" | |
- name: Install poetry dependencies | |
run: poetry install | |
- name: Lint | |
run: | | |
poetry run flake8 xrpl tests snippets --darglint-ignore-regex="^_(.*)" | |
- name: Type-check | |
run: | | |
poetry run mypy --strict --implicit-reexport xrpl snippets | |
unit-test: | |
name: Unit test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Load cached .local | |
id: cache-poetry | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/.local | |
key: dotlocal-${{ env.POETRY_VERSION }} | |
- name: Install poetry | |
if: steps.cache-poetry.outputs.cache-hit != 'true' | |
run: | | |
curl -sSL https://install.python-poetry.org/ | python - --version ${{ env.POETRY_VERSION }} | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Install Python + Retrieve Poetry dependencies from cache | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: "poetry" | |
- name: Display Python version | |
run: | | |
python -c "import sys; print(sys.version)" | |
- name: Install poetry dependencies | |
run: poetry install | |
- name: Unit test | |
run: | | |
poetry run poe test_unit | |
poetry run coverage report --fail-under=85 |