# Uncomment if you want to use docker-in-docker # image: gsiupm/dockermake:latest # services: # - docker:dind # When using dind, it's wise to use the overlayfs driver for # improved performance. stages: - test - push - deploy - clean before_script: - make -e login .test: &test_definition stage: test script: - make -e test-$PYTHON_VERSION except: - tags # Avoid unnecessary double testing test-3.5: <<: *test_definition variables: PYTHON_VERSION: "3.5" test-2.7: <<: *test_definition variables: PYTHON_VERSION: "2.7" push: stage: push script: - make -e push only: - tags - triggers - fix-makefiles push-latest: stage: push script: - make -e push-latest only: - master - triggers - fix-makefiles push-github: stage: deploy script: - make -e push-github only: - master - triggers - fix-makefiles deploy_pypi: stage: deploy script: # Configure the PyPI credentials, then push the package, and cleanup the creds. - echo "[server-login]" >> ~/.pypirc - echo "repository=https://upload.pypi.org/legacy/" >> ~/.pypirc - echo "username=" ${PYPI_USER} >> ~/.pypirc - echo "password=" ${PYPI_PASSWORD} >> ~/.pypirc - make pip_upload - echo "" > ~/.pypirc && rm ~/.pypirc # If the above fails, this won't run. only: - /^v?\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) except: - branches deploy: stage: deploy environment: test script: - make -e deploy only: - master - fix-makefiles push-github: stage: deploy script: - make -e push-github only: - master - triggers clean : stage: clean script: - make -e clean when: manual cleanup_py: stage: clean when: always # this is important; run even if preceding stages failed. script: - rm -vf ~/.pypirc # we don't want to leave these around, but GitLab may clean up anyway. - docker logout