fix(deploy): validate and repair shared environment
This commit is contained in:
@@ -331,6 +331,12 @@ jobs:
|
||||
echo "MAINTENANCE_GITEA_TOKEN is not configured as a repository Actions secret."
|
||||
exit 1
|
||||
fi
|
||||
case "$MAINTENANCE_GITEA_TOKEN" in
|
||||
*[!A-Za-z0-9_-]*)
|
||||
echo "MAINTENANCE_GITEA_TOKEN must be a single token value, not a pasted dotenv block."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shared_env=/opt/job-tracker/shared/.env
|
||||
if [ ! -f "$shared_env" ]; then
|
||||
echo "Expected deployment environment at $shared_env."
|
||||
@@ -338,9 +344,13 @@ jobs:
|
||||
fi
|
||||
env_tmp="$(mktemp)"
|
||||
trap 'rm -f "$env_tmp"' EXIT
|
||||
grep -v '^MAINTENANCE_GITEA_TOKEN=' "$shared_env" > "$env_tmp"
|
||||
grep -Ev '^MAINTENANCE_GITEA_TOKEN=|^```(dotenv)?[[:space:]]*$' "$shared_env" > "$env_tmp"
|
||||
printf 'MAINTENANCE_GITEA_TOKEN=%s\n' "$MAINTENANCE_GITEA_TOKEN" >> "$env_tmp"
|
||||
chmod --reference="$shared_env" "$env_tmp"
|
||||
if ! docker compose --env-file "$env_tmp" -f docker-compose.yml config --quiet; then
|
||||
echo "Refusing to replace the shared deployment environment because it is invalid."
|
||||
exit 1
|
||||
fi
|
||||
cat "$env_tmp" > "$shared_env"
|
||||
rm -f "$env_tmp"
|
||||
trap - EXIT
|
||||
|
||||
+4
-1
@@ -406,7 +406,10 @@ verify_backup_file_shape() {
|
||||
|
||||
report_backup() {
|
||||
local target="$1" size
|
||||
chmod 600 "$target"
|
||||
if ! chmod 600 "$target" 2>/dev/null; then
|
||||
docker run --rm -v "$BACKUP_DIR":/backup -e BACKUP_FILE="$(basename "$target")" \
|
||||
alpine:3 sh -c 'chmod 600 "/backup/$BACKUP_FILE"'
|
||||
fi
|
||||
size="$(du -h "$target" | cut -f1)"
|
||||
echo "Backup verified: ${target} (${size})"
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user