[infra] Артефакты Actions не публикуются в Gitea (upload-artifact v3 «успешно», но total_count: 0; v4 зависает) #62

Open
opened 2026-10-28 23:12:50 +03:00 by embeddevio · 1 comment
Owner

Найдено: devops при прогоне CI (issue #17). Артефакты job'ов не появляются в Gitea: ни в UI run'а, ни через API.

Факты

Проверка Результат
actions/upload-artifact@v3 в job'e unit лог: Container for artifact "coverage" successfully created → Artifact has been successfully uploaded! (173231 Б, 38 файлов)
GET /api/v1/repos/embeddevio/awg-dash/actions/runs/49/artifacts {"artifacts":[],"total_count":0}
GET /api/v1/repos/embeddevio/awg-dash/actions/artifacts total_count: 0
actions/upload-artifact@v4 (ветка probe/artifact-v4) job зависает > 6 мин на старте экшена (контейнер пришлось снять вручную)

Окружение: Gitea 1.26.0 + act_runner v0.6.1 (repo-scoped runner awg-dash-147-repo).

Влияние

  • нельзя скачать coverage.xml / htmlcov/ / trivy-report.json из UI — только читать логи job'а;
  • job statuses и логи при этом работают нормально (commit statuses корректны).

Временная мера (уже в CI)

В шагах дополнительно печатается сводка в лог job'а (coverage-таблица, bandit-отчёт, trivy-таблица) — логи стабильны и доступны по ссылке run'а.

Что проверить (нужен доступ к 192.168.1.111)

  1. app.ini: [actions] — включён ли storage для артефактов, хватает ли места на диске.
  2. Логи Gitea в момент upload: ошибки артефактного сервиса (runner проксирует upload в Gitea).
  3. Совместимость act_runner v0.6.1 ↔ Gitea 1.26.0 для артефактного API (в этом же окружении уже был дефект с незаписываемыми статусами при instance-scoped регистрации).

Refs #17

**Найдено:** devops при прогоне CI (issue #17). Артефакты job'ов не появляются в Gitea: ни в UI run'а, ни через API. ## Факты | Проверка | Результат | |---|---| | `actions/upload-artifact@v3` в job'e `unit` | лог: `Container for artifact "coverage" successfully created` → `Artifact has been successfully uploaded!` (173231 Б, 38 файлов) | | `GET /api/v1/repos/embeddevio/awg-dash/actions/runs/49/artifacts` | `{"artifacts":[],"total_count":0}` | | `GET /api/v1/repos/embeddevio/awg-dash/actions/artifacts` | `total_count: 0` | | `actions/upload-artifact@v4` (ветка `probe/artifact-v4`) | job **зависает** > 6 мин на старте экшена (контейнер пришлось снять вручную) | Окружение: Gitea 1.26.0 + act_runner v0.6.1 (repo-scoped runner `awg-dash-147-repo`). ## Влияние - нельзя скачать `coverage.xml` / `htmlcov/` / `trivy-report.json` из UI — только читать логи job'а; - job statuses и логи при этом работают нормально (commit statuses корректны). ## Временная мера (уже в CI) В шагах дополнительно печатается сводка в лог job'а (coverage-таблица, bandit-отчёт, trivy-таблица) — логи стабильны и доступны по ссылке run'а. ## Что проверить (нужен доступ к 192.168.1.111) 1. `app.ini`: `[actions]` — включён ли storage для артефактов, хватает ли места на диске. 2. Логи Gitea в момент upload: ошибки артефактного сервиса (runner проксирует upload в Gitea). 3. Совместимость act_runner v0.6.1 ↔ Gitea 1.26.0 для артефактного API (в этом же окружении уже был дефект с незаписываемыми статусами при instance-scoped регистрации). **Refs #17**
Author
Owner

Перепроверка дефекта на свежем прогоне (devops, 29.10 ~00:15 MSK): воспроизводится, дефект не снят

Refs #17, Refs #62

Перезапустил run #49 (ветка feat/17-verify, sha 60521b1) — это самый свежий прогон в репозитории, артефакты заливались в 21:11 UTC 28.10 (00:11 MSK 29.10).

Что говорит лог (успех с точки зрения upload-artifact)

Job Строки лога
unit (137) Container for artifact "coverage" successfully created · Total size of all the files uploaded is 173230 bytes · Artifact has been finalized. All files have been successfully uploaded! · Artifact coverage has been successfully uploaded!
image-scan (140) Container for artifact "trivy-report" successfully created · Total size of all the files uploaded is 3353 bytes (raw 45258) · Artifact trivy-report has been successfully uploaded!
security (138) шаг upload security artifacts — success
build (139) шаг upload build artifacts — success

Все четыре шага upload завершились success, ошибок/ретраев в логах нет.

Что говорит API (артефактов нет)

GET /api/v1/repos/embeddevio/awg-dash/actions/runs/49/artifacts  → {"artifacts":[],"total_count":0}
GET /api/v1/repos/embeddevio/awg-dash/actions/runs/66/artifacts  → {"artifacts":[],"total_count":0}
GET /api/v1/repos/embeddevio/awg-dash/actions/runs/67/artifacts  → {"artifacts":[],"total_count":0}
GET /api/v1/repos/embeddevio/awg-dash/actions/artifacts          → {"artifacts":[],"total_count":0}

Результат идентичен run #49 от 28.10: upload-artifact@v3 рапортует полный успех (включая финализацию и посчитанный размер), Gitea не сохраняет ни одного артефакта. То есть это не гонка и не «проглоченная» ошибка раннера — поведение стабильное.

Что осталось недоступно агенту

SSH на хост Gitea проверить пытался: ssh root@192.168.1.111 → Permission denied (publickey). Значит app.ini, логи Gitea и содержимое каталога артефактов (если файлы пишутся, но не индексируются) без владельца не посмотреть — исходный чек-лист в теле issue остаётся в силе:

  1. app.ini → [actions] / [storage] (включён ли storage для артефактов, права на каталог, df -h).
  2. Логи Gitea в момент upload: ошибки artifact-сервиса.
  3. Совместимость act_runner v0.6.1 ↔ Gitea 1.26.0 для artifact API.
  4. Быстрый контрольный признак: после следующего прогона find / -path '*actions_artifacts*' -newer /tmp на хосте Gitea — есть ли файлы на диске вообще (различает «не пишется» и «не индексируется»).

Влияние

AC issue #17 «ссылки на артефакты» остаётся невыполненным. Митигация работает: сводки (coverage-таблица, bandit/pip-audit, trivy-таблица) печатаются в лог job'а и доступны по ссылкам выше.

Refs #17, Refs #62

## Перепроверка дефекта на свежем прогоне (devops, 29.10 ~00:15 MSK): **воспроизводится, дефект не снят** **Refs #17, Refs #62** Перезапустил run [#49](http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49) (ветка `feat/17-verify`, sha `60521b1`) — это самый свежий прогон в репозитории, артефакты заливались в 21:11 UTC 28.10 (00:11 MSK 29.10). ### Что говорит лог (успех с точки зрения upload-artifact) | Job | Строки лога | |---|---| | `unit` ([137](http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49/jobs/137)) | `Container for artifact "coverage" successfully created` · `Total size of all the files uploaded is 173230 bytes` · `Artifact has been finalized. All files have been successfully uploaded!` · `Artifact coverage has been successfully uploaded!` | | `image-scan` ([140](http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49/jobs/140)) | `Container for artifact "trivy-report" successfully created` · `Total size of all the files uploaded is 3353 bytes` (raw 45258) · `Artifact trivy-report has been successfully uploaded!` | | `security` ([138](http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49/jobs/138)) | шаг `upload security artifacts` — `success` | | `build` ([139](http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49/jobs/139)) | шаг `upload build artifacts` — `success` | Все четыре шага upload завершились `success`, ошибок/ретраев в логах нет. ### Что говорит API (артефактов нет) ``` GET /api/v1/repos/embeddevio/awg-dash/actions/runs/49/artifacts → {"artifacts":[],"total_count":0} GET /api/v1/repos/embeddevio/awg-dash/actions/runs/66/artifacts → {"artifacts":[],"total_count":0} GET /api/v1/repos/embeddevio/awg-dash/actions/runs/67/artifacts → {"artifacts":[],"total_count":0} GET /api/v1/repos/embeddevio/awg-dash/actions/artifacts → {"artifacts":[],"total_count":0} ``` Результат идентичен run #49 от 28.10: `upload-artifact@v3` рапортует полный успех (включая финализацию и посчитанный размер), Gitea не сохраняет ни одного артефакта. То есть это не гонка и не «проглоченная» ошибка раннера — поведение стабильное. ### Что осталось недоступно агенту SSH на хост Gitea проверить пытался: `ssh root@192.168.1.111` → `Permission denied (publickey)`. Значит `app.ini`, логи Gitea и содержимое каталога артефактов (если файлы пишутся, но не индексируются) без владельца не посмотреть — исходный чек-лист в теле issue остаётся в силе: 1. `app.ini` → `[actions]` / `[storage]` (включён ли storage для артефактов, права на каталог, `df -h`). 2. Логи Gitea в момент upload: ошибки artifact-сервиса. 3. Совместимость `act_runner v0.6.1` ↔ `Gitea 1.26.0` для artifact API. 4. Быстрый контрольный признак: после следующего прогона `find / -path '*actions_artifacts*' -newer /tmp` на хосте Gitea — есть ли файлы на диске вообще (различает «не пишется» и «не индексируется»). ### Влияние AC issue #17 «ссылки на артефакты» **остаётся невыполненным**. Митигация работает: сводки (coverage-таблица, bandit/pip-audit, trivy-таблица) печатаются в лог job'а и доступны по ссылкам выше. **Refs #17, Refs #62**
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: embeddevio/awg-dash#62