Files
StanPonomarev ce9f1e3d20
Publish container image / Build and push (push) Successful in 32s
refactor tests
2026-07-26 23:49:40 +02:00

29 lines
1.7 KiB
Markdown

# Custom install scripts
This directory supplies the ready-made `python` and `dotnet` scripts. They are not reserved:
modify, replace, or remove them like any other script. Place other trusted executable install
scripts here and add the desired file names to `AGENTCI_INSTALL_SCRIPTS`. The Docker build copies
this directory to `/etc/agentci/install-scripts`, so rebuild the image after changing its contents.
Executable files run directly; files without executable mode run as POSIX shell scripts through
`/bin/sh`.
Scripts run from the cloned repository with a sanitized environment. They receive:
- `DEV_TOOLS_DIR`: persistent, writable tool storage at `/var/lib/agentci/dev-tools`
- `PATH`: `$DEV_TOOLS_DIR/bin` followed by the service path
- `PYTHON_VERSION` and `DOTNET_CHANNEL`: configured built-in runtime versions
`DEV_TOOLS_DIR` is shared by jobs through the `data/agentci` bind mount. Put downloaded SDK/runtime
files beneath it and install command wrappers or symlinks into `$DEV_TOOLS_DIR/bin`; that `bin`
directory is prepended to implementation agents' `PATH`. Environment changes made by a script do
not persist into implementation turns.
The supplied `dotnet` wrapper keeps the SDK itself in `DEV_TOOLS_DIR` and places writable CLI state
and NuGet caches under `DEV_TOOLS_DIR/runtime/dotnet`. OpenCode's own home is deliberately read-only
so it cannot be used to persist global agent configuration.
The configured scripts run in list order after the repository is cloned (or an existing agent PR
branch is synchronized) and before the first implementation turn for `implement`, `iterate`, and
`fix`. They do not rerun between implementation and review-revision turns within one job. Scripts
must be idempotent and must not expect AgentCI or Gitea credentials.