diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index b91a060..1256aaf 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -30,8 +30,6 @@ env: BUILDKIT_PROGRESS: quiet DOCKER_BUILDKIT: 1 REGISTRY: git.sabilin.com/eventhub - CI_REPORTS_BASE_URL: https://ci-reports.dev.eventhub.local - RUNNER_STAND: dev jobs: test: diff --git a/scripts/publish-ci-report.sh b/scripts/publish-ci-report.sh index a88c511..1961859 100644 --- a/scripts/publish-ci-report.sh +++ b/scripts/publish-ci-report.sh @@ -20,13 +20,30 @@ detect_stand() { echo "${RUNNER_STAND}" return 0 fi - # Gitea runner на dev-машине: отчёты в /var/eventhub/ci-reports локально. - # Наличие /opt/eventhub-ift (SSH deploy) не означает, что HTML лежит на IFT-сервере. + if [[ -f /opt/eventhub-ift/.env ]] || [[ -d /opt/eventhub-ift ]]; then + echo "ift" + return 0 + fi + if [[ -f /opt/eventhub-stage/.env ]] || [[ -d /opt/eventhub-stage ]]; then + echo "stage" + return 0 + fi + if command -v docker >/dev/null 2>&1 \ + && docker service ls --format '{{.Name}}' 2>/dev/null | grep -qx 'eventhub-ift-core_ci-reports'; then + echo "ift" + return 0 + fi + if command -v docker >/dev/null 2>&1 \ + && docker service ls --format '{{.Name}}' 2>/dev/null | grep -qx 'eventhub_ci-reports'; then + echo "dev" + return 0 + fi echo "dev" } if [[ -n "${CI_REPORTS_BASE_URL:-}" ]]; then BASE_URL="${CI_REPORTS_BASE_URL%/}" + STAND="${RUNNER_STAND:-custom}" else STAND="$(detect_stand)" BASE_URL="https://ci-reports.${STAND}.eventhub.local" @@ -57,13 +74,15 @@ ensure_ci_reports_dir ensure_ci_reports_nginx() { command -v docker >/dev/null 2>&1 || return 0 local svc replicas - svc=$(docker service ls --format '{{.Name}}' 2>/dev/null | grep -E '^eventhub_ci-reports$' | head -n 1 || true) - [[ -n "${svc}" ]] || return 0 - replicas=$(docker service ls --format '{{.Name}} {{.Replicas}}' 2>/dev/null | awk '$1=="eventhub_ci-reports"{print $2; exit}') - if [[ "${replicas}" == 0/* ]] || [[ -z "${replicas}" ]]; then - echo "Starting ${svc}=1 (dev ci-reports nginx)..." - docker service scale "${svc}=1" 2>/dev/null || true - fi + for svc in eventhub-ift-core_ci-reports eventhub_ci-reports; do + docker service ls --format '{{.Name}}' 2>/dev/null | grep -qx "${svc}" || continue + replicas=$(docker service ls --format '{{.Name}} {{.Replicas}}' 2>/dev/null | awk -v s="${svc}" '$1==s{print $2; exit}') + if [[ "${replicas}" == 0/* ]] || [[ -z "${replicas}" ]]; then + echo "Starting ${svc}=1 (ci-reports nginx)..." + docker service scale "${svc}=1" 2>/dev/null || true + fi + return 0 + done } ensure_ci_reports_nginx @@ -114,6 +133,7 @@ INDEX="${REPORTS_DIR}/${REPO}/${RUN_ID}/index.html" URL="${BASE_URL}/${REPO}/${RUN_ID}/${KIND}/" INDEX_URL="${BASE_URL}/${REPO}/${RUN_ID}/" +echo "Report stand: ${STAND}" echo "Report: ${URL}" echo "Report index: ${INDEX_URL}" echo "Report path: ${DEST}"