Add release notes and build version metadata
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user