Update CD action versions and add poetry and npm caching #121
Workflow file for this run
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: tests | |
on: | |
push: | |
paths-ignore: | |
- 'README.md' | |
- 'LICENSE' | |
- '.gitignore' | |
branches: | |
- main | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- 'LICENSE' | |
- '.gitignore' | |
branches: | |
- main | |
permissions: | |
contents: read | |
env: | |
MODULE_NAME: clairvoyance | |
MIN_TEST_COV: 0 | |
SERVER: http://localhost:4000 | |
jobs: | |
unit-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
pip install poetry | |
- name: Setup poetry | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry install | |
- name: Run tests | |
run: | | |
source .venv/bin/activate | |
pytest --cov=$MODULE_NAME --cov-report=xml --cov-fail-under=$MIN_TEST_COV tests | |
system-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
pip install poetry | |
- name: Setup poetry | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry install | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: '16' | |
- name: Install deps and run server | |
run: | | |
cd tests/apollo-server | |
npm install | |
node src/index.js & | |
- name: Wait for server | |
run: | | |
for i in {0..10}; do | |
echo "Sleep for 1 second ..." | |
sleep 1 | |
if curl -s -o /dev/null "$SERVER"; then | |
echo "$SERVER returned HTTP response!" | |
break | |
fi | |
if [ $i -eq 10 ]; then | |
echo "Server did not respond after 10 seconds!" | |
exit 1 | |
fi | |
done | |
- name: Test with pytest | |
run: | | |
source .venv/bin/activate | |
python -m unittest tests/system.py | |
lint: | |
runs-on: ubuntu-latest | |
if: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
pip install poetry | |
- name: Setup poetry | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry install | |
- name: Run lint | |
if: always() | |
run: | | |
source .venv/bin/activate | |
isort -m 9 --line-length 160 $MODULE_NAME tests --check-only | |
pylint --load-plugins pylint_quotes $MODULE_NAME tests | |
docformatter --wrap-summaries 160 --wrap-descriptions 160 -cr $MODULE_NAME tests | |
yapf -rd $MODULE_NAME tests | |
mypy -V | |
mypy $MODULE_NAME tests |