From eddc6b85a03fdd89ed14c3a8aa2fe939da00f246 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Sat, 4 Apr 2026 01:37:44 +0700 Subject: [PATCH] ci: update README and CI workflow to improve bird2 job installation process and clarify Docker usage --- .gitea/README.md | 2 +- .gitea/workflows/ci.yaml | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitea/README.md b/.gitea/README.md index e11929f..0a896a1 100644 --- a/.gitea/README.md +++ b/.gitea/README.md @@ -7,6 +7,6 @@ Job **openapi** (Redocly) запускается только если в ком Требования к runner: - Метка `ubuntu-latest` (или измените `runs-on` под свои labels). -- Для job `bird2` на runner должен быть доступен **Docker** (проверка `bird -c … -p` в контейнере `debian:bookworm-slim` с пакетом `bird2`). Монтируется `${{ github.workspace }}`, а не `$PWD`, чтобы пути совпадали с checkout на act/Gitea. +- Job `bird2` ставит пакет **bird2** через `apt-get` на самом runner и вызывает `bird -c … -p` по файлам в checkout (без вложенного Docker: иначе bind-mount `/workspace/...` часто не виден демону Docker на хосте). Секреты не обязательны для базового CI; для публикации образов добавьте свои шаги и credentials в отдельный workflow. diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 7bbeb81..c46a366 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -86,12 +86,20 @@ jobs: needs: [go] steps: - uses: actions/checkout@v4 + # Вложенный docker + bind-mount ломается, если демон Docker на хосте не видит путь + # workspace runner'а (/workspace/...). bird -p на самом job-раннере надёжнее. + - name: Install bird2 + run: | + set -euxo pipefail + if command -v sudo >/dev/null 2>&1; then SUDO=sudo; else SUDO=""; fi + $SUDO apt-get update -qq + DEBIAN_FRONTEND=noninteractive $SUDO apt-get install -y -qq bird2 + bird --version - name: bird -p on all scenario bird.conf files env: WORKSPACE: ${{ github.workspace }} run: | set -euxo pipefail - # $PWD на act/Gitea runner не всегда корень репозитория; монтируем именно checkout. WS="${WORKSPACE:-$PWD}" cd "$WS" if [ ! -f internal/birdfmt/testdata/scenarios/minimal/bird.conf ]; then @@ -101,9 +109,5 @@ jobs: fi for conf in internal/birdfmt/testdata/scenarios/*/bird.conf; do echo "==> $conf" - docker run --rm \ - -e "BIRD_CONF=/work/${conf}" \ - -v "${WS}:/work:ro" \ - debian:bookworm-slim \ - bash -ceu 'apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq bird2 >/dev/null && bird -c "$BIRD_CONF" -p' + bird -c "$WS/$conf" -p done