Files
discourse-korean-localization/scripts/verify_deployment.sh
T
syskiller 5bad207526 포럼 한국어 번역 플러그인을 복구하고 배포 검사를 보강
비어 있던 운영 플러그인 경로를 전용 서비스 원본으로 복구했다.
음성 입장 안내와 주변 메뉴 및 관리자 번역을 실제 화면에서 확인했다.
관리자 주소용 내부 이름을 보존하고 보드 메뉴 두 곳의 제목을 복구했다.

검사: Ruby 문법과 YAML 11개 통과. 활성 번역 6004개와 음성 번역 561개 누락 0개.
일반 화면과 관리자 번역 및 보드 자산의 제공 해시를 확인했다.
PC와 390픽셀 모바일 안내창 및 관리자 메뉴 주소를 확인했다.
운영: app 컨테이너만 갱신. DB 구조 변경과 데이터 이전 없음.
백업: /var/discourse/shared/standalone/backups/forum-korean-20261015-1150
설정 백업은 별도 비밀 디렉터리의 권한 600 파일로 보관했다.
제한: DB 복원 시험과 다음 컨테이너 재생성은 이번 검사에 포함하지 않았다.
Trilium: Ubuntu 서버 운영 아래 Discourse 한국어 배포에 기록했다.
2026-10-14 22:44:52 +00:00

27 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
root_dir="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
container="${DISCOURSE_CONTAINER:-app}"
site_url="${DISCOURSE_URL:-https://forum.itosm.co.kr}"
plugin_path="/var/www/discourse/plugins/itosm-korean-localization"
report="$(mktemp)"
trap 'rm -f "$report"' EXIT
# 파일 존재뿐 아니라 저장소 원본과 실행 파일이 일치하는지 검사합니다.
for file in plugin.rb config/locales/client.ko.yml config/locales/server.ko.yml; do
expected="$(sha256sum "$root_dir/$file" | cut -d ' ' -f 1)"
actual="$(docker exec "$container" sha256sum "$plugin_path/$file" | cut -d ' ' -f 1)"
[[ "$expected" == "$actual" ]] || { echo "운영 파일 불일치: $file" >&2; exit 1; }
done
docker exec -i -u discourse -e RAILS_ENV=production -w /var/www/discourse \
"$container" bundle exec rails runner - < "$root_dir/scripts/verify_runtime.rb" > "$report"
if [[ "${1:-}" != "--runtime-only" ]]; then
# 별도 Rails 검사와 실제 웹 프로세스가 제공하는 번역 묶음을 함께 대조합니다.
# 재시작을 빠뜨려 예전 영어 번역을 계속 제공하는 경우도 실패로 처리합니다.
ruby "$root_dir/scripts/verify_web.rb" "$site_url" "$report"
fi
echo "운영 파일과 한국어 번역 검사 통과"