As a bit of background, it may help to check out "What's a build?" and "What are the basic build techniques?".
There are a few directions one can take on that topic:
- Install an extension once, locally, for a single build.
- Modify the build-document of an existing build-type so that the extension will always be installed in the future. (For example, if you modify the build-document for
wp-demo
, then the extension would be installed on wp45.demo.civicrm.org
, wp46.demo.civicrm.org
, etc. every night when the demo sites are rebuilt.)
- Create a custom build-type with a custom build-document using your own curated list of extensions/modules.
Installing once is easiest -- you can use basically any extension-management practice that you'd use normally (with or without civibuild). The web-based manager or drush cvapi
will be fine.
To modify a build-document, you would create or edit files in app/config -- you'll need to create steps for download and install. For example, in drupal-demo:
Digging into those files, you can see how it handles the CiviVolunteer extension. (Search for "volunteer".)
To create a new build-document, you should copy one of the existing build-types. The best starting points are (IMHO) drupal-demo
(which uses drush
with drush-make
), wp-demo
(which uses wp-cli
and git
), and wmff
(which uses git submodules
).
When editing a build-document, the development-feedback-loop (edit=>run=>validate=>repeat) can be a bit slow. To mitigate that, buildkit includes caches and nuanced rebuild commands.