mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-14 20:42:27 +00:00
f3d4415ffb
Some dependencies are not available for python 3.7 anymore. Instead of trying to support different versions of the libraries, we opt to focus on the latest python version, and allow for CORE functionality for earlier versions.
132 lines
3.7 KiB
YAML
132 lines
3.7 KiB
YAML
# 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
|
|
- publish
|
|
- test_image
|
|
- deploy
|
|
|
|
variables:
|
|
KUBENS: senpy
|
|
LATEST_IMAGE: "${HUB_REPO}:${CI_COMMIT_SHORT_SHA}"
|
|
SENPY_DATA: "/senpy-data/" # This is configured in the CI job
|
|
NLTK_DATA: "/senpy-data/nltk" # Store NLTK downloaded data
|
|
|
|
docker:
|
|
stage: publish
|
|
image:
|
|
name: gcr.io/kaniko-project/executor:debug
|
|
entrypoint: [""]
|
|
variables:
|
|
PYTHON_VERSION: "3.10"
|
|
tags:
|
|
- docker
|
|
script:
|
|
- echo $CI_COMMIT_TAG > senpy/VERSION
|
|
- sed "s/{{PYVERSION}}/$PYTHON_VERSION/" Dockerfile.template > Dockerfile
|
|
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"},\"https://index.docker.io/v1/\":{\"auth\":\"$HUB_AUTH\"}}}" > /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 --destination $HUB_REPO:$CI_COMMIT_TAG
|
|
only:
|
|
- tags
|
|
|
|
docker-latest:
|
|
stage: publish
|
|
image:
|
|
name: gcr.io/kaniko-project/executor:debug
|
|
entrypoint: [""]
|
|
variables:
|
|
PYTHON_VERSION: "3.10"
|
|
tags:
|
|
- docker
|
|
script:
|
|
- echo git.${CI_COMMIT_SHORT_SHA} > senpy/VERSION
|
|
- sed "s/{{PYVERSION}}/$PYTHON_VERSION/" Dockerfile.template > Dockerfile
|
|
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"},\"https://index.docker.io/v1/\":{\"auth\":\"$HUB_AUTH\"}}}" > /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 $LATEST_IMAGE --destination "${HUB_REPO}:latest"
|
|
only:
|
|
refs:
|
|
- master
|
|
|
|
testimage:
|
|
tags:
|
|
- docker
|
|
stage: test_image
|
|
image: "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
|
|
script:
|
|
- python -m senpy --no-run --test
|
|
|
|
testpy37:
|
|
tags:
|
|
- docker
|
|
variables:
|
|
SENPY_STRICT: "false"
|
|
image: python:3.7
|
|
stage: test
|
|
script:
|
|
- pip install -r requirements.txt -r test-requirements.txt
|
|
- python setup.py test
|
|
|
|
testpy310:
|
|
tags:
|
|
- docker
|
|
variables:
|
|
SENPY_STRICT: "true"
|
|
image: python:3.10
|
|
stage: test
|
|
script:
|
|
- pip install -r requirements.txt -r test-requirements.txt -r extra-requirements.txt
|
|
- python setup.py test
|
|
|
|
push_pypi:
|
|
only:
|
|
- tags
|
|
tags:
|
|
- docker
|
|
image: python:3.10
|
|
stage: publish
|
|
script:
|
|
- echo $CI_COMMIT_TAG > senpy/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.10
|
|
stage: deploy
|
|
script:
|
|
- pip install senpy==$CI_COMMIT_TAG
|
|
# Allow PYPI to update its index before we try to install
|
|
when: delayed
|
|
start_in: 10 minutes
|
|
|
|
latest-demo:
|
|
only:
|
|
refs:
|
|
- master
|
|
tags:
|
|
- docker
|
|
image: alpine/k8s:1.22.6
|
|
stage: deploy
|
|
environment: production
|
|
variables:
|
|
KUBECONFIG: "/kubeconfig"
|
|
# Same image as docker-latest
|
|
IMAGEWTAG: "${LATEST_IMAGE}"
|
|
KUBEAPP: "senpy"
|
|
script:
|
|
- echo "${KUBECONFIG_RAW}" > $KUBECONFIG
|
|
- kubectl version
|
|
- cd k8s/
|
|
- cat *.yaml *.tmpl 2>/dev/null | envsubst | kubectl --kubeconfig $KUBECONFIG apply --namespace ${KUBENS:-default} -f -
|
|
- kubectl --kubeconfig $KUBECONFIG get all,ing -l app=${KUBEAPP} --namespace=${KUBENS:-default}
|