Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • variables:
      CONTAINER_REGISTRY: $CI_REGISTRY/georg/mat2-ci-images
    
    stages:
      - linting
      - test
    
    
    .prepare_env: &prepare_env
      before_script:  # This is needed to not run the testsuite as root
        - useradd --home-dir ${CI_PROJECT_DIR} mat2
        - chown -R mat2 .
    
    
    linting:bandit:
    
      image: $CONTAINER_REGISTRY:linting 
    
      stage: linting
    
      script:  # TODO: remove B405 and B314
    
        - bandit ./mat2 --format txt --skip B101
        - bandit -r ./nautilus/ --format txt --skip B101
    
        - bandit -r ./libmat2 --format txt --skip B101,B404,B603,B405,B314,B108,B311
    
    linting:codespell:
      image: $CONTAINER_REGISTRY:linting
      stage: linting
      script:
        # Run codespell to check for spelling errors; ignore errors about binary
        # files, use a config with ignored words and exclude the git directory,
        # which might contain false positives
        - codespell -q 2 -I utils/ci/codespell/ignored_words.txt -S .git
      
    
    linting:pylint:
    
      image: $CONTAINER_REGISTRY:linting
    
      stage: linting
      script:
    
    Julien (jvoisin) Voisin's avatar
    Julien (jvoisin) Voisin committed
        - pylint --disable=no-else-return,no-else-raise,no-else-continue,unnecessary-comprehension,raise-missing-from --extension-pkg-whitelist=cairo,gi ./libmat2 ./mat2
    
        # Once nautilus-python is in Debian, decomment it form the line below
    
    Julien (jvoisin) Voisin's avatar
    Julien (jvoisin) Voisin committed
        - pylint --disable=no-else-return,no-else-raise,no-else-continue,unnecessary-comprehension,raise-missing-from --extension-pkg-whitelist=Nautilus,GObject,Gtk,Gio,GLib,gi ./nautilus/mat2.py
    
    linting:pyflakes:
    
      image: $CONTAINER_REGISTRY:linting
    
      stage: linting
      script:
    
        - pyflakes3 ./libmat2 ./mat2 ./tests/ ./nautilus
    
    linting:mypy:
    
      image: $CONTAINER_REGISTRY:linting
    
        - mypy --ignore-missing-imports mat2 libmat2/*.py ./nautilus/mat2.py
    
    tests:archlinux:
      image: $CONTAINER_REGISTRY:archlinux
      stage: test
      script:
    
        - python3 -m unittest discover -v
    
    tests:debian:
    
      image: $CONTAINER_REGISTRY:debian
    
      stage: test
    
    Julien (jvoisin) Voisin's avatar
    Julien (jvoisin) Voisin committed
      script:
    
        - apt-get -qqy purge bubblewrap
    
        - python3 -m unittest discover -v
    
    
    tests:debian_with_bubblewrap:
    
      image: $CONTAINER_REGISTRY:debian
    
        - su - mat2 -c "python3-coverage run --branch -m unittest discover -s tests/"
        - su - mat2 -c "python3-coverage report --fail-under=100 -m --include 'libmat2/*'"
    
    
    tests:fedora:
    
      image: $CONTAINER_REGISTRY:fedora
    
      stage: test
      script:
    
        - python3 -m unittest discover -v
    
    tests:gentoo:
      image: $CONTAINER_REGISTRY:gentoo
    
      stage: test
    
        - su - mat2 -c "python3 -m unittest discover -v"