From 6bb07db8014938e4a7a361072e8f9bc865f8e9e7 Mon Sep 17 00:00:00 2001
From: Stefan Reck <stefan.reck@fau.de>
Date: Thu, 28 Jan 2021 16:25:49 +0100
Subject: [PATCH] put other stages back in

---
 .gitlab-ci.yml | 103 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 99 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1aa4a0d..e85a59b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,12 @@ variables:
 
 
 stages:
-  - build-singularity
+  - test
+  - coverage
+  - doc
+  - docker
+  - release
+  - singularity
 
 
 cache:
@@ -19,12 +24,102 @@ cache:
   key: "$CI_COMMIT_REF_SLUG"
 
 
-build-singularity:
+.virtualenv_template: &virtualenv_definition |
+  python -V
+  pip install -U pip setuptools wheel virtualenv
+  virtualenv venv
+  source venv/bin/activate
+  make install-dev
+
+test:
+    image: docker.km3net.de/base/python:3.6
+    stage: test
+    script:
+        - *virtualenv_definition
+        - pip list
+        - make test
+
+
+coverage:
+    image: docker.km3net.de/base/python:3.6
+    stage: coverage
+    script:
+        - *virtualenv_definition
+        - "make test-cov|grep TOTAL| awk '{printf \"COVERAGE: %.2f%%\", (1-$3/$2)*100 }'"
+    coverage: '/COVERAGE:\s*([0-9]*\.[0-9]*%)/'
+    artifacts:
+        paths:
+            - reports/coverage
+
+
+pages:
+    image: docker.km3net.de/base/python:3.6
+    stage: doc
+    script:
+        - *virtualenv_definition
+        - cd docs && make html
+        - mv _build/html/ ../public/
+        - cd .. && mv reports/coverage public/coverage
+    artifacts:
+        paths:
+            - public
+    cache: {}
+    only:
+        - tags
+        - master
+
+
+docker:
+  image: docker:stable
+  services:
+    - docker:dind
+  stage: docker
+  script:
+    - docker build --pull -t $CONTAINER_TEST_IMAGE .
+    - docker push $CONTAINER_TEST_IMAGE
+  tags:
+    - docker
+  only:
+    - tags
+
+
+pypi:
+  image: docker.km3net.de/base/python:3.6
+  stage: release
+  cache: {}
+  script:
+    - pip install -U twine
+    - python setup.py sdist
+    - twine upload dist/*
+  only:
+    - tags
+
+
+release-image:
+  image: docker:stable
+  services:
+    - docker:dind
+  stage: release
+  script:
+    - docker pull $CONTAINER_TEST_IMAGE
+    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
+    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_LATEST_IMAGE
+    - docker push $CONTAINER_RELEASE_IMAGE
+    - docker push $CONTAINER_LATEST_IMAGE
+  tags:
+    - docker
+  only:
+    - tags
+
+
+singularity:
   image: docker.km3net.de/base/singularity:3.1
-  stage: build-singularity
+  stage: singularity
   script:
     - singularity --version
     - singularity build $SINGULARITY_IMAGE Singularity
     - apt-get update -qy
     - apt-get install -qy lftp
-    - lftp -d -u $KM3NET_SFTP_USER,$KM3NET_SFTP_PASSWORD sftp://$KM3NET_SFTP_HOST -e "set sftp:auto-confirm yes; set ssl:verify-certificate no; cd singularity/; put $SINGULARITY_IMAGE; bye"
+    - lftp -u $KM3NET_SFTP_USER,$KM3NET_SFTP_PASSWORD sftp://$KM3NET_SFTP_HOST -e "set sftp:auto-confirm yes; set ssl:verify-certificate no; cd singularity/; put $SINGULARITY_IMAGE; bye"
+  tags:
+    - docker
-- 
GitLab