diff --git a/documentation/docs/getting-started/installation.md b/documentation/docs/getting-started/installation.md index bcbc7656e4d7..19ad75dc98f8 100644 --- a/documentation/docs/getting-started/installation.md +++ b/documentation/docs/getting-started/installation.md @@ -402,6 +402,11 @@ While core configurations are shared between interfaces, extensions have flexibi +## Pin a goose version in CI/CD +In CI/CD (and other automated, non-interactive environments), pin a specific version with `GOOSE_VERSION` to make installs reproducible and avoid 404s when downloading the goose CLI binary assets if the `stable` release tag doesn’t include them. + +See [CI/CD Environments](/docs/tutorials/cicd) for a complete example and usage details. + ## Additional Resources You can also configure Extensions to extend goose's functionality, including adding new ones or toggling them on and off. For detailed instructions, visit the [Using Extensions Guide][using-extensions]. diff --git a/documentation/docs/guides/updating-goose.md b/documentation/docs/guides/updating-goose.md index 99388efb2a2a..e7ccba4ef59a 100644 --- a/documentation/docs/guides/updating-goose.md +++ b/documentation/docs/guides/updating-goose.md @@ -162,3 +162,7 @@ The goose CLI and desktop apps are under active and continuous development. To g + +:::info Updating in CI/CD +If you're running goose in CI or other non-interactive environments, pin a specific version with `GOOSE_VERSION` for reproducible installs. See [CI/CD Environments](/docs/tutorials/cicd) for a complete example and usage details. +::: diff --git a/documentation/docs/tutorials/cicd.md b/documentation/docs/tutorials/cicd.md index 0a783319c683..fd75abadcef7 100644 --- a/documentation/docs/tutorials/cicd.md +++ b/documentation/docs/tutorials/cicd.md @@ -69,7 +69,7 @@ jobs: run: | mkdir -p /home/runner/.local/bin curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh \ - | CONFIGURE=false GOOSE_BIN_DIR=/home/runner/.local/bin bash + | GOOSE_VERSION=REPLACE_WITH_VERSION CONFIGURE=false GOOSE_BIN_DIR=/home/runner/.local/bin bash echo "/home/runner/.local/bin" >> $GITHUB_PATH - name: Configure goose @@ -159,7 +159,7 @@ steps: run: | mkdir -p /home/runner/.local/bin curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh \ - | CONFIGURE=false GOOSE_BIN_DIR=/home/runner/.local/bin bash + | GOOSE_VERSION=REPLACE_WITH_VERSION CONFIGURE=false GOOSE_BIN_DIR=/home/runner/.local/bin bash echo "/home/runner/.local/bin" >> $GITHUB_PATH - name: Configure goose @@ -172,8 +172,17 @@ steps: EOF ``` +#### Pinning goose versions in CI/CD + +In CI/CD, we recommend pinning a specific goose version with `GOOSE_VERSION` for reproducible runs. This also avoids 404 errors when downloading the goose CLI binary assets if the `stable` release tag doesn’t include them. + +Relevant installer options for CI: +- `GOOSE_VERSION`: the version to pin the install to (both `1.21.1` and `v1.21.1` formats are supported) +- `GOOSE_BIN_DIR`: install directory (make sure this directory is on `PATH`) +- `CONFIGURE=false`: skip interactive `goose configure` flow + :::info Replacements -Replace `REPLACE_WITH_PROVIDER` and `REPLACE_WITH_MODEL` with your LLM provider and model names and add any other necessary configuration required. +Replace `REPLACE_WITH_VERSION`, `REPLACE_WITH_PROVIDER`, and `REPLACE_WITH_MODEL` with the goose version you want to pin and your LLM provider/model names. Add any other necessary configuration required. ::: ### 4. Gather PR Changes and Prepare Instructions