Skip to content

build: remove devcontainer (#86) #297

build: remove devcontainer (#86)

build: remove devcontainer (#86) #297

---
name: "Automated Tests"
on:
workflow_call:
workflow_dispatch:
push:
paths:
- ".github/workflows/automated-tests.yml"
- ".github/actions/**"
- "**.py"
- "pyproject.toml"
- "poetry.lock"
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
paths:
- ".github/workflows/automated-tests.yml"
- ".github/actions/**"
- "**.py"
- "pyproject.toml"
- "poetry.lock"
env:
VALENTINA_LOG_FILE: "/tmp/valentina.log"
VALENTINA_TEST_MONGO_URI: "mongodb://localhost:27017"
VALENTINA_TEST_MONGO_DATABASE_NAME: "valentina-test"
VALENTINA_DB_PATH: "valentina.sqlite" # TODO: Depreciated
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-python-code:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
python-version: ["3.11"]
steps:
- name: Harden Security Runner
uses: step-security/harden-runner@v2
with:
egress-policy: block
disable-sudo: true
allowed-endpoints: >
api.github.com:443
api.snapcraft.io:443
auth.docker.io:443
codecov.io:443
files.pythonhosted.org:443
github.com:443
install.python-poetry.org:443
production.cloudflare.docker.com:443
pypi.org:443
python-poetry.org:443
registry-1.docker.io:443
storage.googleapis.com:443
uploader.codecov.io:443
# ----------------------------------------------
# Install python and checkout repository
# ----------------------------------------------
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout repository
uses: actions/checkout@v4
# ----------------------------------------------
# install Mongo
# ----------------------------------------------
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.10.0
with:
mongodb-version: "7.0.2"
# ----------------------------------------------
# Install poetry and project dependencies
# ----------------------------------------------
- name: Setup Python and Poetry
uses: ./.github/actions/setup-poetry
# ----------------------------------------------
# run linters
# ----------------------------------------------
- name: lint with ruff
run: poetry run ruff --extend-ignore=I001,D301,D401 src/
- name: check pyproject.toml
run: poetry run poetry check
# ----------------------------------------------
# run test suite
# ----------------------------------------------
- name: Run tests with pytest
run: |
poetry run coverage run
poetry run coverage report
poetry run coverage xml
# ----------------------------------------------
# upload coverage stats
# ----------------------------------------------
- name: Upload coverage
if: github.ref == 'refs/heads/main' && matrix.python-version == '3.11'
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: reports/coverage.xml
fail_ci_if_error: true