Add release notes and build version metadata
CI - Build & Verify / Build, Typecheck & Hygiene (push) Has been cancelled
CI - Build & Verify / Deploy to award.noveria.net (push) Has been cancelled

This commit is contained in:
AzuTear
2026-06-26 22:00:39 +02:00
parent 9393d433fa
commit f225addfe8
6 changed files with 289 additions and 4 deletions
+38 -1
View File
@@ -82,6 +82,15 @@ jobs:
- name: Frontend build
run: |
set -euo pipefail
base_version="$(node -p "require('./package.json').version")"
run_number="${GITHUB_RUN_NUMBER:-${GITEA_RUN_NUMBER:-0}}"
if [ "$run_number" != "0" ]; then
export VITE_BUILD_VERSION="${base_version}+build.${run_number}"
else
export VITE_BUILD_VERSION="${base_version}+local"
fi
export VITE_BUILD_DATE="$(date -u +%Y-%m-%d)"
echo "Building frontend version ${VITE_BUILD_VERSION}"
npm ci
npm run build
working-directory: frontend
@@ -109,8 +118,18 @@ jobs:
id: meta
run: |
set -euo pipefail
version="$(node -p "require('./frontend/package.json').version")"
run_number="${GITHUB_RUN_NUMBER:-${GITEA_RUN_NUMBER:-0}}"
if [ "$run_number" != "0" ]; then
build_version="${version}+build.${run_number}"
else
build_version="${version}+local"
fi
echo "sha=$(git rev-parse HEAD)" >> "$GITEA_OUTPUT"
echo "short_sha=$(git rev-parse --short HEAD)" >> "$GITEA_OUTPUT"
echo "version=$version" >> "$GITEA_OUTPUT"
echo "build_version=$build_version" >> "$GITEA_OUTPUT"
echo "Deploying version ${build_version}"
git log -1 --oneline
- name: Verify production host layout
@@ -140,6 +159,22 @@ jobs:
chown -R "$dest_owner" /dest
'
- name: Write frontend build metadata
run: |
set -euo pipefail
build_date="$(date -u +%Y-%m-%d)"
docker run --rm \
-e BUILD_VERSION="${{ steps.meta.outputs.build_version }}" \
-e BUILD_DATE="${build_date}" \
-v "${DEPLOY_APP_PATH}:/app" \
alpine:latest \
sh -lc '
test -d /app/frontend
printf "VITE_BUILD_VERSION=%s\nVITE_BUILD_DATE=%s\n" "$BUILD_VERSION" "$BUILD_DATE" > /app/frontend/.env.production
echo "Frontend build metadata:"
cat /app/frontend/.env.production
'
- name: Build Docker images
run: |
set -euo pipefail
@@ -244,9 +279,11 @@ jobs:
css_asset="$(printf "%s" "$index" | grep -Eo '/assets/index-[^"]+\.css' | head -n 1)"
test -n "$js_asset"
test -n "$css_asset"
curl -fsS --max-time 20 "${LIVE_URL}${js_asset}" >/dev/null
js_body="$(curl -fsS --max-time 20 "${LIVE_URL}${js_asset}")"
printf "%s" "$js_body" | grep -Fq "${{ steps.meta.outputs.build_version }}"
curl -fsS --max-time 20 "${LIVE_URL}${css_asset}" >/dev/null
echo "Frontend assets served: ${js_asset}, ${css_asset}"
echo "Frontend version verified: ${{ steps.meta.outputs.build_version }}"
- name: Show production containers
if: always()