# Change pip's cache directory to be inside the project directory since we can # only cache local items. variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" default: image: python:bullseye # Pip's cache doesn't store the python packages # https://pip.pypa.io/en/stable/topics/caching/ # # If you want to also cache the installed packages, you have to install # them in a virtualenv and cache it as well. cache: paths: - .cache/pip - .tox before_script: - python --version # For debugging - pip install tox test: script: - pip install poetry && pip install "playwright=="$(poetry show playwright | grep version | cut -f 2 -d ":" | tr -d " ") - playwright install firefox - playwright install-deps - apt install -y redis-server - redis-server >/dev/null 2>&1 & - tox -e python -- --browser firefox test-pypy: image: pypy:3 # nh3 does not have wheels prepared for pypy, so we need a working Rust # compiler to compile the module: script: - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh /dev/stdin -y --profile=minimal - source "$HOME/.cargo/env" - pip install poetry && pip install "playwright=="$(poetry show playwright | grep version | cut -f 2 -d ":" | tr -d " ") - playwright install firefox - playwright install-deps - apt install -y redis-server - redis-server >/dev/null 2>&1 & - tox -e pypy3 -- --browser firefox lint: script: - tox -e pylint,pylint-tests,flake,black,isort mypy: script: - tox -e mypy eslint: image: node before_script: [] script: - npm install - npx eslint asset-sources/*.ts