diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0377e9ec792bc86716404d736f4f971671f93ed4..8f9e23961d02b6df6accbac90570dcd6970f421a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,8 @@
 stages:
   - test
   - build
+  - check
+  - deploy
 
 mdcheck:
   stage: test
@@ -36,5 +38,36 @@ build:
     - export PYTHONIOENCODING=UTF-8
     - export LC_CTYPE=en_US.UTF-8
   script:
-      #- python setup.py --version
     - python setup.py sdist
+
+Install test:
+  stage: check
+  image: it4innovations/docker-pypi:latest
+  script:
+    - pip install dist/pipdeps*tar.gz
+    - pipdeps -l || true
+    - pipdeps -u
+
+versioncheck:
+  stage: check
+  image: it4innovations/docker-pypi:latest
+  script:
+    - export IT4I_FACTORY_PREBUILD=1
+    - python setup.py --version
+    - export BUILD_VERSION="$(python setup.py --version)"
+    - >-
+         export PUBLISHED_VERSION="$(pip install pipdeps== 2>&1 | grep -oE "\(from versions: .*)" | sed "s/(from versions: //" | sed "s/)//" | tr ", " "\n" | tail -n1)"
+#    - export EGG_VERSION=$(grep -E "^Version:" pipdeps.egg-info/PKG-INFO | grep -Eo "[0-9.]+")
+#    - CMP_VERSION="$(cmp-version $EGG_VERSION $PUBLISHED_VERSION)"
+#    - if [ $CMP_VERSION -eq 1 ]; then true; else echo "Egg info is older/same version as module already available from public pypi repository. Please run python setup.py egg_info and commit changes"; false; fi
+    - CMP_VERSION="$(cmp-version $BUILD_VERSION $PUBLISHED_VERSION)"
+    - if [ $CMP_VERSION -eq 1 ]; then true; else echo 'Git tag is older/same version as module already available from public pypi repository. Please run git tag -a <version> -m "<version>"'; false; fi
+
+upload:
+  stage: deploy
+  image: it4innovations/docker-pypi:latest
+  script:
+    - twine upload -u "$PYPI_USERNAME" -p "$PYPI_PASSWORD" dist/pipdeps*tar.gz
+#  only:
+#    - master
+  when: manual
diff --git a/pipdeps/pipdeps.py b/pipdeps/pipdeps.py
index 9aec07140311b79ff64536ed44c01800d2d10b17..616ef173de4f061f6005b151077a2ce1bde2ce2c 100644
--- a/pipdeps/pipdeps.py
+++ b/pipdeps/pipdeps.py
@@ -76,16 +76,13 @@ def upgrade_package(package, versions):
     subprocess.check_call(
         ["pip", "install", "--upgrade", "%s==%s" % (package, "".join(versions))],
         stderr=subprocess.STDOUT
-        )
+    )
 
 def get_pip_list():
     """
     pip list
     """
-    outdated_packages = subprocess.check_output(
-        ["pip", "list"],
-        stderr=subprocess.STDOUT
-    )
+    outdated_packages = subprocess.check_output(["pip", "list"])
     return [line.split()[0] for line in outdated_packages.strip().split("\n")[2:]]
 
 def file_download(url):
@@ -341,6 +338,8 @@ def main():
     arguments = arg_parse()
     pyver = get_pyver()
     pkglist = get_pip_list()
+    if 'pipdeps' in pkglist:
+        pkglist.remove('pipdeps')
     jsonpipdeptree = get_jsonpipdeptree()
     packages_data = collect_packages(pkglist, jsonpipdeptree, pyver=pyver)
     for pkg, pkg_data in sorted(
diff --git a/setup.py b/setup.py
index 4cbee3d910cd0b39e4a5aefee9cd1628c49329d1..63f1e42aee8c26a0083ee3a128e702feb2912083 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ setup(
     packages=find_packages(),
     namespace_packages=['pipdeps'],
     zip_safe=False,
-    version='0.0.1',
+    version='0.0.dev1',
     # version_format='{tag}',
     long_description_markdown_filename='README.md',
     setup_requires=['setuptools-markdown'],