Automate build number tagging and sync
This commit is contained in:
@@ -2,8 +2,11 @@ FROM python:3.12-slim
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG BUILD_NUMBER=dev
|
||||||
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1
|
PYTHONUNBUFFERED=1 \
|
||||||
|
SITE_BUILD_NUMBER=${BUILD_NUMBER}
|
||||||
|
|
||||||
COPY backend/requirements.txt .
|
COPY backend/requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from fastapi import FastAPI
|
|||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
from .config import settings
|
from .config import settings
|
||||||
from .db import init_db
|
from .db import init_db, set_setting
|
||||||
from .routers.requests import (
|
from .routers.requests import (
|
||||||
router as requests_router,
|
router as requests_router,
|
||||||
startup_warmup_requests_cache,
|
startup_warmup_requests_cache,
|
||||||
@@ -41,6 +41,8 @@ async def health() -> dict:
|
|||||||
@app.on_event("startup")
|
@app.on_event("startup")
|
||||||
async def startup() -> None:
|
async def startup() -> None:
|
||||||
init_db()
|
init_db()
|
||||||
|
if settings.site_build_number and settings.site_build_number.strip():
|
||||||
|
set_setting("site_build_number", settings.site_build_number.strip())
|
||||||
runtime = get_runtime_settings()
|
runtime = get_runtime_settings()
|
||||||
configure_logging(runtime.log_level, runtime.log_file)
|
configure_logging(runtime.log_level, runtime.log_file)
|
||||||
asyncio.create_task(run_daily_jellyfin_sync())
|
asyncio.create_task(run_daily_jellyfin_sync())
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: backend/Dockerfile
|
dockerfile: backend/Dockerfile
|
||||||
|
args:
|
||||||
|
BUILD_NUMBER: ${BUILD_NUMBER}
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
|||||||
requests_data_source: 'Pick where Magent should read requests from.',
|
requests_data_source: 'Pick where Magent should read requests from.',
|
||||||
log_level: 'How much detail is written to the activity log.',
|
log_level: 'How much detail is written to the activity log.',
|
||||||
log_file: 'Where the activity log is stored.',
|
log_file: 'Where the activity log is stored.',
|
||||||
site_build_number: 'Version or build identifier shown in the footer.',
|
site_build_number: 'Build number shown in the footer (auto-set from releases).',
|
||||||
site_banner_enabled: 'Enable a sitewide banner for announcements.',
|
site_banner_enabled: 'Enable a sitewide banner for announcements.',
|
||||||
site_banner_message: 'Short banner message for maintenance or updates.',
|
site_banner_message: 'Short banner message for maintenance or updates.',
|
||||||
site_banner_tone: 'Visual tone for the banner.',
|
site_banner_tone: 'Visual tone for the banner.',
|
||||||
|
|||||||
26
scripts/build_release.ps1
Normal file
26
scripts/build_release.ps1
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
$repoRoot = Resolve-Path "$PSScriptRoot\\.."
|
||||||
|
Set-Location $repoRoot
|
||||||
|
|
||||||
|
$now = Get-Date
|
||||||
|
$buildNumber = "{0}{1}{2}{3}{4}" -f $now.ToString("dd"), $now.ToString("M"), $now.ToString("yy"), $now.ToString("HH"), $now.ToString("mm")
|
||||||
|
|
||||||
|
Write-Host "Build number: $buildNumber"
|
||||||
|
|
||||||
|
git tag $buildNumber
|
||||||
|
git push origin $buildNumber
|
||||||
|
|
||||||
|
$backendImage = "rephl3xnz/magent-backend:$buildNumber"
|
||||||
|
$frontendImage = "rephl3xnz/magent-frontend:$buildNumber"
|
||||||
|
|
||||||
|
docker build -f backend/Dockerfile -t $backendImage --build-arg BUILD_NUMBER=$buildNumber .
|
||||||
|
docker build -f frontend/Dockerfile -t $frontendImage frontend
|
||||||
|
|
||||||
|
docker tag $backendImage rephl3xnz/magent-backend:latest
|
||||||
|
docker tag $frontendImage rephl3xnz/magent-frontend:latest
|
||||||
|
|
||||||
|
docker push $backendImage
|
||||||
|
docker push $frontendImage
|
||||||
|
docker push rephl3xnz/magent-backend:latest
|
||||||
|
docker push rephl3xnz/magent-frontend:latest
|
||||||
Reference in New Issue
Block a user