feat: add semver auto-increment and version display
- Add VERSION file (starts at 0.1.0) - Deploy workflow bumps patch on every push, commits back [skip ci] - APP_VERSION passed into container via env - Version shown in page header next to title Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,23 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITEA_TOKEN }}
|
||||||
|
|
||||||
|
- name: Bump patch version
|
||||||
|
run: |
|
||||||
|
VERSION=$(cat VERSION)
|
||||||
|
MAJOR=$(echo $VERSION | cut -d. -f1)
|
||||||
|
MINOR=$(echo $VERSION | cut -d. -f2)
|
||||||
|
PATCH=$(echo $VERSION | cut -d. -f3)
|
||||||
|
NEW_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
|
||||||
|
echo $NEW_VERSION > VERSION
|
||||||
|
echo "APP_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
||||||
|
git config user.email "ci@domverse-berlin.eu"
|
||||||
|
git config user.name "CI"
|
||||||
|
git add VERSION
|
||||||
|
git commit -m "chore: bump version to $NEW_VERSION [skip ci]"
|
||||||
|
git push
|
||||||
|
|
||||||
- name: Write .env
|
- name: Write .env
|
||||||
run: |
|
run: |
|
||||||
@@ -23,11 +40,12 @@ jobs:
|
|||||||
OUTLINE_URL=http://172.29.0.13:3000
|
OUTLINE_URL=http://172.29.0.13:3000
|
||||||
OUTLINE_TOKEN=${{ secrets.OUTLINE_TOKEN }}
|
OUTLINE_TOKEN=${{ secrets.OUTLINE_TOKEN }}
|
||||||
TS_AUTHKEY=${{ secrets.TS_AUTHKEY }}
|
TS_AUTHKEY=${{ secrets.TS_AUTHKEY }}
|
||||||
|
APP_VERSION=${{ env.APP_VERSION }}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Deploy with docker compose
|
- name: Deploy with docker compose
|
||||||
run: |
|
run: |
|
||||||
echo "=== Deploying commit ${{ gitea.sha }} to ${{ gitea.ref_name }} ==="
|
echo "=== Deploying ${{ env.APP_VERSION }} (commit ${{ gitea.sha }}) to ${{ gitea.ref_name }} ==="
|
||||||
docker compose -f "$COMPOSE_FILE" -p "$COMPOSE_PROJECT" up --build -d --remove-orphans
|
docker compose -f "$COMPOSE_FILE" -p "$COMPOSE_PROJECT" up --build -d --remove-orphans
|
||||||
|
|
||||||
- name: Prune dangling images
|
- name: Prune dangling images
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- OUTLINE_URL=${OUTLINE_URL:-http://172.29.0.13:3000}
|
- OUTLINE_URL=${OUTLINE_URL:-http://172.29.0.13:3000}
|
||||||
- OUTLINE_TOKEN=${OUTLINE_TOKEN}
|
- OUTLINE_TOKEN=${OUTLINE_TOKEN}
|
||||||
|
- APP_VERSION=${APP_VERSION:-dev}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
tailscale-state:
|
tailscale-state:
|
||||||
|
|||||||
3
webui.py
3
webui.py
@@ -30,6 +30,7 @@ from pydantic import BaseModel, field_validator
|
|||||||
|
|
||||||
VAULT_DIR: Path = Path(os.environ.get("VAULT_DIR", "/vault"))
|
VAULT_DIR: Path = Path(os.environ.get("VAULT_DIR", "/vault"))
|
||||||
SETTINGS_PATH: Path = Path(os.environ.get("SETTINGS_PATH", "/work/settings.json"))
|
SETTINGS_PATH: Path = Path(os.environ.get("SETTINGS_PATH", "/work/settings.json"))
|
||||||
|
APP_VERSION: str = os.environ.get("APP_VERSION", "dev")
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# App + job state
|
# App + job state
|
||||||
@@ -441,7 +442,7 @@ def _page(title: str, body: str) -> str:
|
|||||||
<style>{_BASE_CSS}</style></head>
|
<style>{_BASE_CSS}</style></head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>Outline Sync</h1>
|
<h1>Outline Sync <small style="font-size:.55em;color:#aaa;font-weight:400">v{APP_VERSION}</small></h1>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="/">Dashboard</a>
|
<a href="/">Dashboard</a>
|
||||||
<a href="/changes">Changes</a>
|
<a href="/changes">Changes</a>
|
||||||
|
|||||||
Reference in New Issue
Block a user