include:
  - project: 'QubesOS/qubes-continuous-integration'
    file: '/common.yml'
  - project: 'QubesOS/qubes-continuous-integration'
    file: '/r4.3/gitlab-base.yml'
  - project: 'QubesOS/qubes-continuous-integration'
    file: '/r4.3/gitlab-host.yml'
  - project: 'QubesOS/qubes-continuous-integration'
    file: '/r4.3/gitlab-vm.yml'

checks:tests:
  stage: checks
  variables:
    PYTEST_ADDOPTS: "--color=yes"
  before_script: &before-script
    - "PATH=$PATH:$HOME/.local/bin"
    - sudo dnf install -y python3-gobject gtk3 python3-pytest gtksourceview4
      python3-coverage xorg-x11-server-Xvfb python3-pip
    - pip3 install --quiet -r ci/requirements.txt
    - git clone https://github.com/QubesOS/qubes-core-admin-client ~/core-admin-client
    - git clone https://github.com/QubesOS/qubes-core-qrexec ~/core-qrexec
  script:
    - PYTHONPATH=~/core-admin-client:~/core-qrexec xvfb-run ./run-tests.sh
  after_script:
    - "PATH=$PATH:$HOME/.local/bin"
    - ci/codecov-wrapper

checks:pylint:
  stage: checks
  before_script:
  - sudo dnf install -y python3-gobject gtk3 xorg-x11-server-Xvfb python3-mypy gtksourceview4 python3-pip curl
  - pip3 install --quiet -r ci/requirements.txt
  - mypy --install-types --non-interactive
  # remove when https://github.com/pylint-dev/astroid/issues/2190 is fixed
  - file_to_patch=$(python3 -c 'import astroid.builder;print(astroid.builder.__file__)') &&
    curl -sSL https://github.com/QubesOS/qubes-continuous-integration/raw/main/scripts/pylint-astroid-workaround-2190.patch | sudo patch "$file_to_patch"
  - git clone https://github.com/QubesOS/qubes-core-admin-client ~/core-admin-client
  - git clone https://github.com/QubesOS/qubes-core-qrexec ~/core-qrexec
  script:
  - PYTHONPATH=~/core-admin-client:~/core-qrexec python3 -m pylint --rcfile=.pylintrc qui qubes_config
  - mypy

checks:black:
  extends: .lint
  stage: checks
  variables:
    DIR: .
    SKIP_PYLINT: 1