Files
agentci/install-scripts/README.md
T

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`. Compose mounts the
directory read-only at `/etc/agentci/install-scripts`. Executable files run directly; files without
executable mode run as POSIX shell scripts through `/bin/sh` so bind mounts do not depend on host
file-mode preservation.
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 `agentci_data` volume. 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.