1. Resources
  2. /
  3. Plugins
  4. /
  5. anvil-buildkite-plugin

anvil-buildkite-plugin

Install the Anvil CLI onto a Buildkite agent and optionally run a target (build, …). The customer-facing way to build and package Control4 drivers in a Buildkite pipeline.

Model: the environment hook always installs anvil onto PATH; the command hook then either runs a configured target or your step’s own command.

Usage

Environment setup only

anvil is put on PATH; the step’s own command: does the work:

steps:
  - command: anvil build -c release
    plugins:
      - driverforge/anvil#v1.0.0:
          version: '1.4.0'        # pinned, or 'latest'

Run a target directly (one-step packaging)

steps:
  - plugins:
      - driverforge/anvil#v1.0.0:
          command: build
          configuration: release
          increment: patch

Configuration

OptionTypeDescription
versionstringCLI version — pinned (1.4.0) or latest (default)
commandstringTarget to run after install (e.g. build). Omit for setup-only
project-dirstringDriver project path (--project-dir / -p)
configurationstringBuild configuration (--configuration / -c)
incrementstringVersion bump: major | minor | patch
encryptboolForce encryption on (true) or off (false); omit to keep the driver’s setting
sourcemapboolEmit a sourcemap (--sourcemap / -s)
unpackboolKeep unpacked output (--unpack / -u)
deployboolDeploy after build. Mutually exclusive with sync
syncboolHot-sync after build. Mutually exclusive with deploy
argsstringExtra raw args appended to the invocation (escape hatch)
cache-dirstringPer-agent download cache dir (default ~/.cache/anvil-buildkite)

How it works

The environment hook detects OS/arch → downloads the pinned release archive from releases.driverforge.comverifies the SHA-256 checksum → caches it per-agent (<cache-dir>/anvil/<version>/<arch>) so repeat builds don’t re-download → exports it onto PATH.

The command hook replaces the step’s command phase. With command: configured it runs anvil <command> with the mapped flags; otherwise it re-runs the step’s own command: (with anvil already on PATH). Supported agents: Linux and macOS (amd64 / arm64).

Developing

shellcheck hooks/* lib/*.bash
docker run --rm -v "$PWD:/plugin:ro" buildkite/plugin-linter --id driverforge/anvil
docker run --rm -v "$PWD:/plugin:ro" buildkite/plugin-tester    # BATS hook tests

Contributing

Issues and pull requests are welcome — see CONTRIBUTING.md. This repo is a public mirror of a private monorepo, so accepted PRs land via an upstream import and show as closed (not merged) with your authorship preserved; the linked guide explains why. Please also read the Code of Conduct.

Security

Report vulnerabilities privately — see SECURITY.md. Please don’t open public issues for security reports.

License

MIT — see LICENSE.

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started for free.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. CI/CD perspectives

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement
  6. Supplier Code of Conduct
  7. Modern Slavery Statement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2026