29 lines
1.7 KiB
Markdown
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.
|