Install Node.js before Checkout in the CI/CD workflow
Some checks failed
CI/CD / build-test-deploy (pull_request) Failing after 53s
Some checks failed
CI/CD / build-test-deploy (pull_request) Failing after 53s
Host-mode jobs execute directly on the bare runner container rather than a per-job container, and actions/checkout is a JS action — it needs `node` on PATH to run at all, which the runner image doesn't ship. Failed every run with "Cannot find: node in PATH" before any other step got a chance to install anything.
This commit is contained in:
@@ -17,6 +17,15 @@ jobs:
|
||||
build-test-deploy:
|
||||
runs-on: host
|
||||
steps:
|
||||
# `runs-on: host` runs every step directly on the bare runner
|
||||
# container instead of spinning up a fresh container per job, and
|
||||
# `actions/checkout` below is a JS action — it needs a `node` binary
|
||||
# on PATH to run at all, which this image doesn't ship. Has to come
|
||||
# before Checkout, since Checkout itself is what fails without it.
|
||||
- name: Install Node.js
|
||||
shell: bash
|
||||
run: apk add --no-cache nodejs
|
||||
|
||||
- name: Checkout
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
||||
|
||||
@@ -37,9 +37,11 @@ docker run -d --name gitea-ci-runner --restart unless-stopped \
|
||||
|
||||
`host:host` — раннер выполняет джобы напрямую в своём собственном контейнере (никаких вложенных
|
||||
контейнеров на каждый джоб), у него смонтирован docker.sock хоста — поэтому `docker compose`
|
||||
внутри джоба управляет реальными контейнерами на этой машине. Джоб сам ставит себе `docker-cli` и
|
||||
.NET SDK через `apk`/`dotnet-install.sh` (см. workflow) — образ раннера намеренно голый, чтобы не
|
||||
поддерживать отдельный кастомный образ.
|
||||
внутри джоба управляет реальными контейнерами на этой машине. Джоб сам ставит себе `node`,
|
||||
`docker-cli` и .NET SDK через `apk`/`dotnet-install.sh` (см. workflow) — образ раннера намеренно
|
||||
голый, чтобы не поддерживать отдельный кастомный образ. `node` ставится первым шагом, до
|
||||
`actions/checkout` — этот шаг сам является JS-экшеном и без `node` в PATH падает с `Cannot find:
|
||||
node in PATH` раньше, чем успевает выполниться что-либо ещё.
|
||||
|
||||
Проверить, что раннер подключился: Site Administration → Actions → Runners — должен появиться
|
||||
`ruvdstest-prod` со статусом Idle/Online.
|
||||
|
||||
Reference in New Issue
Block a user