LazyLibrarian/.gitlab-ci.yml
2022-12-17 11:13:54 +00:00

104 lines
2.7 KiB
YAML

default:
image: python:latest
cache:
paths:
- .cache/pip
- venv/
artifacts:
when: always
reports:
junit: lltest.xml
coverage_report:
coverage_format: cobertura
path: coverage.xml
stages:
- test
- package
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
.standard_job: # The basis for all jobs using a standard Python interpreter
stage: test
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always # Run only manually, by triggering run on the web
- when: never # Never run when the source is a "push", for now
before_script:
- python --version # So it's in the log
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
- scripts/ci/install-required-modules.sh
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
test_all_mods:
extends: .standard_job
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always # Run only manually, by triggering run on the web
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always # Run this one on schedule
- when: never # Never run when the source is a "push", for now
script:
- scripts/ci/install-optional-modules.sh
- scripts/ci/runtests.sh
test_min_mods:
extends: .standard_job
script:
- scripts/ci/remove-optional-modules.sh
- scripts/ci/runtests.sh
test_all_mods-earliest:
extends: .standard_job
image: python:3.7 # Will be end of life on 24 June 2023
script:
- scripts/ci/install-optional-modules.sh
- scripts/ci/runtests.sh
test_min_mods-earliest:
extends: .standard_job
image: python:3.7 # Will be end of life on 24 June 2023
script:
- scripts/ci/remove-optional-modules.sh
- scripts/ci/runtests.sh
test_all_pystonlite_310:
extends: .standard_job
image: python:3.10
script:
- python3 -m pip install pyston_lite_autoload # Install Pyston Lite Autoloader
- scripts/ci/install-optional-modules.sh
- scripts/ci/runtests.sh
# test_all_pystonfull:
# image: pyston/pyston # Performance-optimized python
# stage: test
# before_script:
# - python --version # So it's in the log
# - pip install virtualenv
# - virtualenv venv-pyston
# - source venv-pyston/bin/activate
# - apt-get update
# - apt-get install rustc -y # Cryptography needs Rust to build
# script:
# - scripts/ci/install-required-modules.sh
# - scripts/ci/install-optional-modules.sh
# - scripts/ci/runtests.sh
# - deactivate
# coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
build_latest:
extends: .standard_job
stage: package
script:
- python3 -m build
artifacts:
paths:
- dist/