cron 설정, 최종 요약 메시지 추가
This commit is contained in:
@@ -8,7 +8,7 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '24 23 * * *' # Runs every day at 2:07 AM
|
- cron: '7 17 * * *' # UTC 17:07 == KST 02:07
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
mirror:
|
mirror:
|
||||||
@@ -44,10 +44,18 @@ jobs:
|
|||||||
ROOT_DIR="$(pwd)"
|
ROOT_DIR="$(pwd)"
|
||||||
NOTIFY_WEBHOOK="${NOTIFY_WEBHOOK:-}"
|
NOTIFY_WEBHOOK="${NOTIFY_WEBHOOK:-}"
|
||||||
SYNC_TAGS="${SYNC_TAGS:-true}"
|
SYNC_TAGS="${SYNC_TAGS:-true}"
|
||||||
|
TOTAL_SUCCESS=0
|
||||||
|
TOTAL_SKIP=0
|
||||||
|
TOTAL_ERROR=0
|
||||||
|
|
||||||
notify_status() {
|
notify_status() {
|
||||||
local status="$1" repo="$2" branch="$3" mode="$4" start_epoch="$5" extra="${6:-}"
|
local status="$1" repo="$2" branch="$3" mode="$4" start_epoch="$5" extra="${6:-}"
|
||||||
local ts end_epoch duration text payload
|
local ts end_epoch duration text payload
|
||||||
|
case "${status}" in
|
||||||
|
success) ((TOTAL_SUCCESS++)) ;;
|
||||||
|
skip) ((TOTAL_SKIP++)) ;;
|
||||||
|
error) ((TOTAL_ERROR++)) ;;
|
||||||
|
esac
|
||||||
[[ -z "${NOTIFY_WEBHOOK}" ]] && return
|
[[ -z "${NOTIFY_WEBHOOK}" ]] && return
|
||||||
ts=$(TZ=Asia/Seoul date '+%Y-%m-%d %H:%M:%S %Z')
|
ts=$(TZ=Asia/Seoul date '+%Y-%m-%d %H:%M:%S %Z')
|
||||||
case "${status}" in
|
case "${status}" in
|
||||||
@@ -309,3 +317,15 @@ jobs:
|
|||||||
process_entry "${branch_name}"
|
process_entry "${branch_name}"
|
||||||
done < branch_list
|
done < branch_list
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
TOTAL_PROCESSED=$((TOTAL_SUCCESS + TOTAL_SKIP + TOTAL_ERROR))
|
||||||
|
SUMMARY_TS=$(TZ=Asia/Seoul date '+%Y-%m-%d %H:%M:%S %Z')
|
||||||
|
SUMMARY_TEXT="브랜치 동기화 완료: 총 ${TOTAL_PROCESSED}개 (성공 ${TOTAL_SUCCESS}, 동일로 건너뜀 ${TOTAL_SKIP}, 오류 ${TOTAL_ERROR}) - ${SUMMARY_TS}"
|
||||||
|
echo "${SUMMARY_TEXT}"
|
||||||
|
if [[ -n "${NOTIFY_WEBHOOK}" ]]; then
|
||||||
|
SUMMARY_PAYLOAD=${SUMMARY_TEXT//\"/\\\"}
|
||||||
|
curl -sS -i -X POST \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"username\":\"Gitea\",\"icon_url\":\"https://gitea.hmac.kr/assets/img/logo.svg\",\"text\":\"${SUMMARY_PAYLOAD}\"}" \
|
||||||
|
"${NOTIFY_WEBHOOK}" >/dev/null || echo "::warning::Summary notification failed"
|
||||||
|
fi
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
## 실행 환경
|
## 실행 환경
|
||||||
- Runner 라벨: `internal` (해당 라벨이 있는 셀프호스티드 러너에서만 실행)
|
- Runner 라벨: `internal` (해당 라벨이 있는 셀프호스티드 러너에서만 실행)
|
||||||
- 예약 실행: 매일 02:07 KST (`cron: 7 2 * * *`)
|
- 예약 실행: 매일 02:07 KST (`cron: 7 17 * * *`, Gitea 스케줄 cron은 UTC 기준)
|
||||||
- 수동 실행: `workflow_dispatch` 입력을 통해 선택 브랜치만 실행 가능
|
- 수동 실행: `workflow_dispatch` 입력을 통해 선택 브랜치만 실행 가능
|
||||||
|
|
||||||
## 시크릿/변수
|
## 시크릿/변수
|
||||||
|
|||||||
1
to-do.md
1
to-do.md
@@ -25,3 +25,4 @@
|
|||||||
2025-12-16 18:16:34 KST 추가 업데이트: 증분 성능 검토를 위해 타겟 main 선-fetch를 켜고 끄기 위한 SEED_FROM_TARGET 옵션(기본 false) 추가. README에 옵션 설명 반영.
|
2025-12-16 18:16:34 KST 추가 업데이트: 증분 성능 검토를 위해 타겟 main 선-fetch를 켜고 끄기 위한 SEED_FROM_TARGET 옵션(기본 false) 추가. README에 옵션 설명 반영.
|
||||||
2025-12-16 18:20:26 KST 추가 업데이트: 증분 fetch 시 타겟 main 커밋을 shallow-exclude로 지정해 필요한 부분만 받아오도록 변경, README 동작 개요에 반영.
|
2025-12-16 18:20:26 KST 추가 업데이트: 증분 fetch 시 타겟 main 커밋을 shallow-exclude로 지정해 필요한 부분만 받아오도록 변경, README 동작 개요에 반영.
|
||||||
2025-12-16 18:29:58 KST 추가 업데이트: SEED_FROM_TARGET 옵션과 타겟 main 선-fetch 시드를 제거하고 shallow-exclude 기반 증분 fetch만 유지하여 증분 로직을 단순화.
|
2025-12-16 18:29:58 KST 추가 업데이트: SEED_FROM_TARGET 옵션과 타겟 main 선-fetch 시드를 제거하고 shallow-exclude 기반 증분 fetch만 유지하여 증분 로직을 단순화.
|
||||||
|
2025-12-17 08:27:54 KST 추가 업데이트: 스케줄 cron을 UTC 기준임을 명시하고 02:07 KST 실행을 위해 `7 17 * * *`로 설정, 동기화 결과 요약(총/성공/건너뜀/오류) 메시지를 마지막에 출력하고 알림 웹훅으로 전송하도록 추가.
|
||||||
|
|||||||
Reference in New Issue
Block a user