mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-14 12:42:27 +00:00
95 lines
2.4 KiB
YAML
95 lines
2.4 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
|
|
- deploy
|
|
|
|
variables:
|
|
KUBENS: senpy
|
|
|
|
docker:
|
|
stage: publish
|
|
image:
|
|
name: gcr.io/kaniko-project/executor:debug
|
|
entrypoint: [""]
|
|
variables:
|
|
PYTHON_VERSION: "3.10"
|
|
tags:
|
|
- docker
|
|
script:
|
|
- 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
|
|
|
|
testpy37:
|
|
tags:
|
|
- docker
|
|
image: python:3.7
|
|
stage: test
|
|
script:
|
|
- pip install -r requirements.txt -r test-requirements.txt
|
|
- python setup.py test
|
|
|
|
testpy310:
|
|
tags:
|
|
- docker
|
|
image: python:3.10
|
|
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.7
|
|
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.7
|
|
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
|
|
|
|
deploy:
|
|
only:
|
|
refs:
|
|
- master
|
|
tags:
|
|
- docker
|
|
image: alpine/k8s:1.22.6
|
|
stage: deploy
|
|
environment: production
|
|
variables:
|
|
KUBECONFIG_FILE: "/kubeconfig"
|
|
IMAGEWTAG: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"
|
|
KUBEAPP: "senpy"
|
|
script:
|
|
- cat ${KUBECONFIG} > $KUBECONFIG_FILE
|
|
- kubectl version
|
|
- cd k8s/
|
|
- cat *.yaml *.tmpl 2>/dev/null | envsubst | kubectl --kubeconfig $KUBECONFIG_FILE apply --namespace ${KUBENS:-default} -f -
|
|
- kubectl --kubeconfig $KUBECONFIG_FILE get all,ing -l app=${KUBEAPP} --namespace=${KUBENS:-default}
|