stages: - test - publish - check_published docker: stage: publish image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] tags: - docker script: - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json # The skip-tls-verify flag is there because our registry certificate is self signed - /kaniko/executor --context $CI_PROJECT_DIR --skip-tls-verify --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG only: - tags test: tags: - docker image: python:3.8 stage: test script: - pip install -r requirements.txt -r test-requirements.txt - python setup.py test push_pypi: only: - tags tags: - docker image: python:3.8 stage: publish script: - echo $CI_COMMIT_TAG > soil/VERSION - pip install twine - python setup.py sdist bdist_wheel - TWINE_PASSWORD=$PYPI_PASSWORD TWINE_USERNAME=$PYPI_USERNAME python -m twine upload dist/* check_pypi: only: - tags tags: - docker image: python:3.8 stage: check_published script: - pip install soil==$CI_COMMIT_TAG # Allow PYPI to update its index before we try to install when: delayed start_in: 2 minutes