12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- image: docker:20.10.22
- variables:
- DOCKER_DRIVER: overlay2
- DOCKER_TLS_CERTDIR: "/certs"
- DOCKER_HOST: tcp://docker:2376
- # Where to publish this build's tagged working container.
- DOCKER_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- DOCKER_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
- DOCKER_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
- DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
- services:
- - docker:20.10.22-dind
- stages:
- - build
- - test
- - release
- before_script:
- - sudo apt install python3-dev python3-pip
- - python -V
- - echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi"
- - apt-get update && apt-get install -y git
- - docker info
- # Because we use a private registry (registry.rys.one), we first need to provide credentials.
- # This gives us access to pull and push to the registry.
- - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- build-upload:
- stage: build
- script:
- - pip install build twine flit
- - FLIT_INDEX_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi flit build
- - 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/*
- only:
- - tags
- .build-upload-pypi:
- stage: build
- script:
- - pip install build twine flit
- - flit build
- - python -m twine upload dist/*
- only:
- - tags
- build_docker:
- stage: build
- script:
- - docker pull $DOCKER_BRANCH || true
- - docker build --cache-from $DOCKER_BRANCH -f ./Dockerfile --tag $DOCKER_BRANCH .
- - docker push $DOCKER_BRANCH
- only:
- refs:
- - master
- - tags
- build_tagged_docker:
- stage: build
- script:
- - docker pull $DOCKER_BRANCH || true
- - docker tag $DOCKER_BRANCH $DOCKER_LATEST
- - docker push $DOCKER_LATEST
- - docker tag $DOCKER_BRANCH $DOCKER_TAG
- - docker push $DOCKER_TAG
- only:
- - tags
|