stages: - unit - demo - coverage unit: stage: unit script: python3 -m doctest src/should.py demo: stage: demo script: python3 src/should.py --xml demo/*.should artifacts: reports: junit: should.xml coverage: stage: coverage before_script: - pip3 install coverage script: - coverage erase - coverage run -m doctest src/should.py - coverage run -a src/should.py demo/*.should - coverage report coverage: '/^src/should.py.*?(\d+\%)$/'