Build Docker image: stage: deploy only: refs: - next - tags image: docker:stable services: - docker:dind variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY script: - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME tags: - docker-privileged Publish on PyPI: stage: deploy image: python:3.7 only: - tags before_script: - pip install twine - python setup.py sdist bdist_wheel variables: TWINE_USERNAME: cbenz # TWINE_PASSWORD: # Secret variable, see project CI settings. script: - twine upload dist/* environment: name: PyPI url: https://pypi.org/project/validata-ui/$CI_COMMIT_TAG