1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-11-21 15:52:28 +00:00

New versioning

Use git to automatically fetch the version
This commit is contained in:
J. Fernando Sánchez 2017-02-17 16:13:11 +01:00
parent 7eaf303124
commit 3cea7534ef
5 changed files with 39 additions and 8 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ dist
build build
README.html README.html
__pycache__ __pycache__
VERSION

View File

@ -29,6 +29,7 @@ stages:
- pip install --use-wheel -r requirements.txt - pip install --use-wheel -r requirements.txt
- pip install --use-wheel -r test-requirements.txt - pip install --use-wheel -r test-requirements.txt
- py.test --cov=senpy --cov-report term-missing - py.test --cov=senpy --cov-report term-missing
- python
test-3.5: test-3.5:
<<: *test_definition <<: *test_definition

View File

@ -2,7 +2,7 @@ PYVERSIONS=3.5 3.4 2.7
PYMAIN=$(firstword $(PYVERSIONS)) PYMAIN=$(firstword $(PYVERSIONS))
NAME=senpy NAME=senpy
REPO=gsiupm REPO=gsiupm
VERSION=$(shell cat $(NAME)/VERSION) VERSION=$(shell git describe --tags)
TARNAME=$(NAME)-$(subst -,.,$(VERSION)).tar.gz TARNAME=$(NAME)-$(subst -,.,$(VERSION)).tar.gz
IMAGENAME=$(REPO)/$(NAME):$(VERSION) IMAGENAME=$(REPO)/$(NAME):$(VERSION)
TEST_COMMAND=gitlab-runner exec docker --cache-dir=/tmp/gitlabrunner --docker-volumes /tmp/gitlabrunner:/tmp/gitlabrunner --env CI_PROJECT_NAME=$(NAME) TEST_COMMAND=gitlab-runner exec docker --cache-dir=/tmp/gitlabrunner --docker-volumes /tmp/gitlabrunner:/tmp/gitlabrunner --env CI_PROJECT_NAME=$(NAME)
@ -36,7 +36,7 @@ quick_test: $(addprefix test-,$(PYMAIN))
test: $(addprefix test-,$(PYVERSIONS)) test: $(addprefix test-,$(PYVERSIONS))
debug-%: debug-%:
(docker start $(NAME)-debug && docker attach $(NAME)-debug) || docker run -w /usr/src/app/ -v $$PWD:/usr/src/app --entrypoint=/bin/bash -ti --name $(NAME)-debug '$(IMAGENAME)-python$*' (docker start $(NAME)-debug && docker attach $(NAME)-debug) || docker run -w /usr/src/app/ -v $$PWD:/usr/src/app --entrypoint=/bin/bash -ti --name $(NAME)-debug '$(IMAGENAME)-python$* pip install -r test-requirements.txt'
debug: debug-$(PYMAIN) debug: debug-$(PYMAIN)
@ -63,8 +63,8 @@ upload: test $(addprefix upload-,$(PYVERSIONS))
docker push '$(REPO)/$(NAME)' docker push '$(REPO)/$(NAME)'
clean: clean:
@docker ps -a | awk '/$(REPO)\/$(NAME)/{ split($$2, vers, "-"); if(vers[1] != "${VERSION}"){ print $$1;}}' | xargs docker rm 2>/dev/null|| true @docker ps -a | awk '/$(REPO)\/$(NAME)/{ split($$2, vers, "-"); if(vers[0] != "${VERSION}"){ print $$1;}}' | xargs docker rm -v 2>/dev/null|| true
@docker images | awk '/$(REPO)\/$(NAME)/{ split($$2, vers, "-"); if(vers[1] != "${VERSION}"){ print $$1":"$$2;}}' | xargs docker rmi 2>/dev/null|| true @docker images | awk '/$(REPO)\/$(NAME)/{ split($$2, vers, "-"); if(vers[0] != "${VERSION}"){ print $$1":"$$2;}}' | xargs docker rmi 2>/dev/null|| true
@docker rmi $(NAME)-debug 2>/dev/null || true @docker rmi $(NAME)-debug 2>/dev/null || true
upload_git: upload_git:

View File

@ -1 +0,0 @@
0.7.2-dev1

View File

@ -1,4 +1,34 @@
import os import os
import subprocess
import logging
with open(os.path.join(os.path.dirname(__file__), 'VERSION')) as f: logger = logging.getLogger(__name__)
__version__ = f.read().strip()
ROOT = os.path.dirname(__file__)
DEFAULT_FILE = os.path.join(ROOT, 'VERSION')
def git_version():
try:
res = subprocess.check_output(['git', 'describe',
'--tags', '--dirty']).decode('utf-8')
return res.strip()
except subprocess.CalledProcessError:
return None
def read_version(versionfile=DEFAULT_FILE):
with open(versionfile) as f:
return f.read().strip()
def write_version(version, versionfile=DEFAULT_FILE):
version = version or git_version()
if not version:
raise ValueError('You need to provide a valid version')
with open(versionfile, 'w') as f:
f.write(version)
__version__ = git_version() or read_version()
write_version(__version__)