.gitlab-ci.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. image: docker:20.10.22
  2. variables:
  3. DOCKER_DRIVER: overlay2
  4. DOCKER_TLS_CERTDIR: "/certs"
  5. DOCKER_HOST: tcp://docker:2376
  6. # Where to publish this build's tagged working container.
  7. DOCKER_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  8. DOCKER_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  9. DOCKER_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
  10. DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
  11. services:
  12. - docker:20.10.22-dind
  13. stages:
  14. - build
  15. - test
  16. - release
  17. before_script:
  18. #- apt-get update && apt-get install -y git python3-dev python3-pip
  19. - python -V
  20. - echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi"
  21. - docker info
  22. # Because we use a private registry (registry.rys.one), we first need to provide credentials.
  23. # This gives us access to pull and push to the registry.
  24. - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  25. build-upload:
  26. stage: build
  27. script:
  28. - pip install build twine flit
  29. - FLIT_INDEX_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi flit build
  30. - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
  31. only:
  32. - tags
  33. .build-upload-pypi:
  34. stage: build
  35. script:
  36. - pip install build twine flit
  37. - flit build
  38. - python -m twine upload dist/*
  39. only:
  40. - tags
  41. build_docker:
  42. stage: build
  43. script:
  44. - docker pull $DOCKER_BRANCH || true
  45. - docker build --cache-from $DOCKER_BRANCH -f ./Dockerfile --tag $DOCKER_BRANCH .
  46. - docker push $DOCKER_BRANCH
  47. only:
  48. refs:
  49. - master
  50. - tags
  51. build_tagged_docker:
  52. stage: build
  53. script:
  54. - docker pull $DOCKER_BRANCH || true
  55. - docker tag $DOCKER_BRANCH $DOCKER_LATEST
  56. - docker push $DOCKER_LATEST
  57. - docker tag $DOCKER_BRANCH $DOCKER_TAG
  58. - docker push $DOCKER_TAG
  59. only:
  60. - tags