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:
parent
7eaf303124
commit
3cea7534ef
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ dist
|
||||
build
|
||||
README.html
|
||||
__pycache__
|
||||
VERSION
|
||||
|
@ -29,6 +29,7 @@ stages:
|
||||
- pip install --use-wheel -r requirements.txt
|
||||
- pip install --use-wheel -r test-requirements.txt
|
||||
- py.test --cov=senpy --cov-report term-missing
|
||||
- python
|
||||
|
||||
test-3.5:
|
||||
<<: *test_definition
|
||||
|
8
Makefile
8
Makefile
@ -2,7 +2,7 @@ PYVERSIONS=3.5 3.4 2.7
|
||||
PYMAIN=$(firstword $(PYVERSIONS))
|
||||
NAME=senpy
|
||||
REPO=gsiupm
|
||||
VERSION=$(shell cat $(NAME)/VERSION)
|
||||
VERSION=$(shell git describe --tags)
|
||||
TARNAME=$(NAME)-$(subst -,.,$(VERSION)).tar.gz
|
||||
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)
|
||||
@ -36,7 +36,7 @@ quick_test: $(addprefix test-,$(PYMAIN))
|
||||
test: $(addprefix test-,$(PYVERSIONS))
|
||||
|
||||
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)
|
||||
|
||||
@ -63,8 +63,8 @@ upload: test $(addprefix upload-,$(PYVERSIONS))
|
||||
docker push '$(REPO)/$(NAME)'
|
||||
|
||||
clean:
|
||||
@docker ps -a | awk '/$(REPO)\/$(NAME)/{ split($$2, vers, "-"); if(vers[1] != "${VERSION}"){ print $$1;}}' | xargs docker rm 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 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[0] != "${VERSION}"){ print $$1":"$$2;}}' | xargs docker rmi 2>/dev/null|| true
|
||||
@docker rmi $(NAME)-debug 2>/dev/null || true
|
||||
|
||||
upload_git:
|
||||
|
@ -1 +0,0 @@
|
||||
0.7.2-dev1
|
@ -1,4 +1,34 @@
|
||||
import os
|
||||
import subprocess
|
||||
import logging
|
||||
|
||||
with open(os.path.join(os.path.dirname(__file__), 'VERSION')) as f:
|
||||
__version__ = f.read().strip()
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
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__)
|
||||
|
Loading…
Reference in New Issue
Block a user