fix(ci): runner 维护 workflow 使用 alpine 镜像并安装 curl
Node.js Build / build (push) Has been skipped

This commit is contained in:
2026-08-06 11:21:09 +08:00
parent 8aa417989e
commit b895d62260
+10 -8
View File
@@ -8,12 +8,16 @@ on:
jobs: jobs:
health-check: health-check:
runs-on: docker runs-on: docker
container:
image: alpine:3.20
steps: steps:
- name: Install tools
run: apk add --no-cache curl docker-cli grep
- name: Check Gitea health - name: Check Gitea health
id: gitea id: gitea
run: | run: |
STATUS=$(curl -sf http://gitea:3000/api/healthz | grep -c '"status":"pass"' || echo 0) if curl -sf http://gitea:3000/api/healthz | grep -q '"status":"pass"'; then
if [ "$STATUS" -ge 1 ]; then
echo "result=ok|Gitea 健康检查通过" >> $GITHUB_OUTPUT echo "result=ok|Gitea 健康检查通过" >> $GITHUB_OUTPUT
else else
echo "result=fail|Gitea 健康检查失败" >> $GITHUB_OUTPUT echo "result=fail|Gitea 健康检查失败" >> $GITHUB_OUTPUT
@@ -23,10 +27,8 @@ jobs:
- name: Check Verdaccio health - name: Check Verdaccio health
id: verdaccio id: verdaccio
run: | run: |
if curl -sf http://verdaccio:4873/-/ping | grep -q '"status":"ok"\|"status": "ok"'; then if curl -sf http://verdaccio:4873/-/ping >/dev/null 2>&1; then
echo "result=ok|Verdaccio 正常" >> $GITHUB_OUTPUT echo "result=ok|Verdaccio 正常" >> $GITHUB_OUTPUT
elif curl -sf http://verdaccio:4873/-/ping >/dev/null 2>&1; then
echo "result=ok|Verdaccio 可访问" >> $GITHUB_OUTPUT
else else
echo "result=fail|Verdaccio 不可达" >> $GITHUB_OUTPUT echo "result=fail|Verdaccio 不可达" >> $GITHUB_OUTPUT
exit 1 exit 1
@@ -37,8 +39,8 @@ jobs:
run: | run: |
RESP=$(curl -sf -u "${{ secrets.CI_USER }}:${{ secrets.CI_PASSWORD }}" \ RESP=$(curl -sf -u "${{ secrets.CI_USER }}:${{ secrets.CI_PASSWORD }}" \
"http://gitea:3000/api/v1/admin/actions/runners") "http://gitea:3000/api/v1/admin/actions/runners")
ONLINE=$(echo "$RESP" | grep -c '"status":"online"' || echo 0) ONLINE=$(echo "$RESP" | grep -c '"status":"online"' || true)
if [ "$ONLINE" -ge 1 ]; then if [ "${ONLINE:-0}" -ge 1 ]; then
NAME=$(echo "$RESP" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4) NAME=$(echo "$RESP" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4)
echo "result=ok|Runner ${NAME} 在线 (${ONLINE} 个)" >> $GITHUB_OUTPUT echo "result=ok|Runner ${NAME} 在线 (${ONLINE} 个)" >> $GITHUB_OUTPUT
else else
@@ -50,7 +52,7 @@ jobs:
id: cleanup id: cleanup
run: | run: |
REMOVED=0 REMOVED=0
for cid in $(docker ps -a --filter "label=org.opencontainers.image.source=gitea/act_runner" -q 2>/dev/null); do for cid in $(docker ps -a --filter "label=org.opencontainers.image.source=gitea/act_runner" -q 2>/dev/null || true); do
STATE=$(docker inspect -f '{{.State.Status}}' "$cid" 2>/dev/null || echo unknown) STATE=$(docker inspect -f '{{.State.Status}}' "$cid" 2>/dev/null || echo unknown)
if [ "$STATE" = "exited" ]; then if [ "$STATE" = "exited" ]; then
docker rm "$cid" >/dev/null 2>&1 && REMOVED=$((REMOVED+1)) || true docker rm "$cid" >/dev/null 2>&1 && REMOVED=$((REMOVED+1)) || true