stash
This commit is contained in:
parent
95ddb484eb
commit
8622e488a4
16 changed files with 607 additions and 369 deletions
|
|
@ -10,12 +10,30 @@ For the full list of settings and their values, see
|
|||
https://docs.djangoproject.com/en/4.1/ref/settings/
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
import dotenv
|
||||
from pathlib import Path
|
||||
|
||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
|
||||
def _git_commit():
|
||||
# deploy/dev/docker-compose.yml bind-mounts the repo's real .git dir at
|
||||
# /git (separate from BASE_DIR, which only has the backend/ subtree) -
|
||||
# point git at it explicitly there. Bare-metal dev has no such mount, but
|
||||
# BASE_DIR sits inside the real checkout so plain rev-parse finds it by
|
||||
# walking up. In prod, the build context is backend/ alone with no .git
|
||||
# anywhere, so both fail and we fall back to the GIT_COMMIT build-arg/env
|
||||
# var (see deploy/prod/Dockerfile.backend and playbook.yml).
|
||||
cmd = ['git', '--git-dir=/git'] if os.path.isdir('/git') else ['git']
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
[*cmd, 'rev-parse', '--short', 'HEAD'], cwd=BASE_DIR, stderr=subprocess.DEVNULL
|
||||
).decode().strip()
|
||||
except (subprocess.CalledProcessError, FileNotFoundError, OSError):
|
||||
return os.environ.get('GIT_COMMIT', 'unknown')
|
||||
|
||||
dotenv.load_dotenv(BASE_DIR / '.env')
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
|
|
@ -30,6 +48,7 @@ DEBUG = os.environ.get('DEBUG', 'False').lower() == 'true'
|
|||
# Application definition
|
||||
|
||||
TOOLSHED_VERSION = "0.0.0-dev.0"
|
||||
GIT_COMMIT = _git_commit()
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.admin',
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@ from hostadmin.models import Domain
|
|||
from authentication.signature_auth import SignatureAuthentication
|
||||
from toolshed.models import Tag, Property, Category, InventoryItem
|
||||
from toolshed.serializers import CategorySerializer, PropertySerializer
|
||||
from backend.settings import TOOLSHED_VERSION
|
||||
from backend.settings import TOOLSHED_VERSION, GIT_COMMIT
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
@permission_classes([])
|
||||
@authentication_classes([])
|
||||
def get_version(request, format=None): # /version/
|
||||
return Response({'version': TOOLSHED_VERSION})
|
||||
return Response({'version': TOOLSHED_VERSION, 'commit': GIT_COMMIT})
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue