fix(config): Improve Consul config loading and add version info
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m4s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m4s
- Fixes an issue where configuration from Consul was not being loaded correctly due to multiple base64 and encoding issues. - Adds robust decoding logic with fallbacks to handle different value formats from Consul. - Adds the Git commit SHA as a version identifier to the Docker image and application logs to improve debuggability.
This commit is contained in:
2
.github/workflows/container-build.yml
vendored
2
.github/workflows/container-build.yml
vendored
@@ -51,6 +51,8 @@ jobs:
|
||||
tags: |
|
||||
${{ steps.registry.outputs.url }}/${{ github.repository }}:latest
|
||||
${{ steps.registry.outputs.url }}/${{ github.repository }}:${{ github.sha }}
|
||||
build-args: |
|
||||
COMMIT_SHA=${{ github.sha }}
|
||||
cache-from: type=registry,ref=${{ steps.registry.outputs.url }}/${{ github.repository }}:buildcache
|
||||
cache-to: type=registry,ref=${{ steps.registry.outputs.url }}/${{ github.repository }}:buildcache,mode=max
|
||||
#cache-from: type=gha
|
||||
|
||||
@@ -4,6 +4,11 @@ FROM python:3.13-slim
|
||||
# Set the working directory in the container
|
||||
WORKDIR /app
|
||||
|
||||
# Accept the Git commit SHA as a build argument
|
||||
ARG COMMIT_SHA
|
||||
# Set the Git SHA as an environment variable
|
||||
ENV GIT_SHA=${COMMIT_SHA}
|
||||
|
||||
# Copy the dependencies file to the working directory
|
||||
COPY requirements.txt .
|
||||
|
||||
|
||||
@@ -1359,11 +1359,13 @@ class WeightSyncApp:
|
||||
def show_status(self):
|
||||
"""Show application status"""
|
||||
try:
|
||||
git_sha = os.getenv('GIT_SHA', 'Not set')
|
||||
read_only_mode = self.config.get('sync.read_only_mode', False)
|
||||
status_info = self.state.get_status_info()
|
||||
|
||||
print("\n📊 Weight Sync Status")
|
||||
print("=" * 50)
|
||||
print(f"Version (Git SHA): {git_sha}")
|
||||
print(f"Mode: {'Read-only (No Garmin uploads)' if read_only_mode else 'Full sync mode'}")
|
||||
print(f"Backend: {'Consul' if CONSUL_LIBRARY else 'Unknown'}")
|
||||
print(f"Fitbit Library: {'Available' if FITBIT_LIBRARY else 'Not Available'}")
|
||||
@@ -1419,6 +1421,10 @@ async def main():
|
||||
"""Main application entry point"""
|
||||
import sys
|
||||
|
||||
# Log the Git SHA if it exists
|
||||
git_sha = os.getenv('GIT_SHA', 'Not set')
|
||||
logger.info(f"Running version (Git SHA): {git_sha}")
|
||||
|
||||
app = WeightSyncApp()
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
|
||||
Reference in New Issue
Block a user