diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 68fb90fc027f1d706430358822b7aa8d5c4e2959..e594464c15eb28ea5c7b630c2c5045c2714c465b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ variables: CI_REGISTRY_IMAGE_BASE: $CI_REGISTRY/caosdb/src/caosdb-advanced-user-tools/base:latest -stages: +stages: - setup - cert - style @@ -53,15 +53,15 @@ test: - time docker load < /image-cache/mariadb.tar || true - time docker load < /image-cache/caosdb-dev.tar || true - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - - EXEPATH=`pwd` CAOSDB_TAG=$CAOSDB_TAG docker-compose + - EXEPATH=`pwd` CAOSDB_TAG=$CAOSDB_TAG docker-compose -f .docker/docker-compose.yml up -d - - cd .docker + - cd .docker - /bin/sh ./run.sh - - cd .. + - cd .. - docker logs docker-caosdb-server-1 &> caosdb_log.txt - docker logs docker-sqldb-1 &> mariadb_log.txt - docker-compose -f .docker/docker-compose.yml down - - rc=`cat .docker/result` + - rc=`cat .docker/result` - exit $rc dependencies: [cert] needs: [cert] @@ -76,19 +76,19 @@ build-testenv: tags: [cached-dind] image: docker:18.09 stage: setup - # Hint: do not use only here; the image needs always to be build since it + # Hint: do not use only here; the image needs always to be build since it # contains the repo code #only: - script: + script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY # use here general latest or specific branch latest... - - docker build + - docker build --file .docker/Dockerfile -t $CI_REGISTRY_IMAGE . - docker push $CI_REGISTRY_IMAGE - docker save $CI_REGISTRY_IMAGE > /image-cache/caosdb-advanced-testenv.tar - cd .docker-base - - docker build + - docker build -t $CI_REGISTRY_IMAGE_BASE . - docker push $CI_REGISTRY_IMAGE_BASE @@ -123,14 +123,32 @@ linting: - make lint allow_failure: true -unittest: +unittest_py39: tags: [docker] stage: unittest image: $CI_REGISTRY_IMAGE needs: [build-testenv] script: - - python3 -c "import caosdb; print('CaosDB Version:', caosdb.__version__)" - - tox + # First verify that system Python actually is 3.9 + - python3 -c "import sys; assert sys.version.startswith('3.9')" + - python3 -c "import caosdb; print('CaosDB Version:', caosdb.__version__)" + - tox + +unittest_py38: + tags: [docker] + stage: unittest + image: python:3.8 + script: &python_test_script + - pip install nose pandas pytest pytest-cov gitignore-parser openpyxl>=3.0.7 xlrd==1.2 h5py + - pip install git+https://gitlab.indiscale.com/caosdb/src/caosdb-pylib.git@dev + - pip install . + - pytest --cov=caosadvancedtools unittests + +unittest_py310: + tags: [docker] + stage: unittest + image: python:3.10 + script: *python_test_script # Build the sphinx documentation and make it ready for deployment by Gitlab Pages # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages diff --git a/tox.ini b/tox.ini index 42ff0df986d179ce9770937dba4886f3b4e7ad0f..11ee3202cbf416ffe388185a9a7c0f094bed0ad3 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist=py36, py37, py38, py39, py310 +envlist=py38, py39, py310 skip_missing_interpreters = true [testenv] deps=nose