mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-24 09:02: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
|
build
|
||||||
README.html
|
README.html
|
||||||
__pycache__
|
__pycache__
|
||||||
|
VERSION
|
||||||
|
@ -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
|
||||||
|
8
Makefile
8
Makefile
@ -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:
|
||||||
|
@ -1 +0,0 @@
|
|||||||
0.7.2-dev1
|
|
@ -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__)
|
||||||
|
Loading…
Reference in New Issue
Block a user