PHPackages                             symbiote/silverstripe-build - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. symbiote/silverstripe-build

ActiveSilverstripe-module[DevOps &amp; Deployment](/categories/devops)

symbiote/silverstripe-build
===========================

Phing build helpers for projects making use of the silverstripe-base installation process.

5.3.0(4y ago)024.7k10[2 issues](https://github.com/symbiote/silverstripe-build/issues)[1 PRs](https://github.com/symbiote/silverstripe-build/pulls)2BSD-3-ClausePHPCI failing

Since Mar 17Pushed 4y ago3 watchersCompare

[ Source](https://github.com/symbiote/silverstripe-build)[ Packagist](https://packagist.org/packages/symbiote/silverstripe-build)[ RSS](/packages/symbiote-silverstripe-build/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (86)Used By (2)

Requirments
-----------

[](#requirments)

- Phing
- php cli
- PEAR (with a version of phpunit supported by silverstripe)

Installation
------------

[](#installation)

- Edit scripts/build.xml and change the name attribute to
- Copy scripts/build.properties.sample to scripts/build.properties
- Edit build.properties and change the DB configuration and rewrite.base settings.
- Run `phing -f scripts/build.xml` to make sure everything installs
- If you require additional modules, add them into the scripts/dependent-modules file, then run `phing -f scripts/build.xml update_modules`
- Run `phing -f scripts/build.xml test` to make sure everything's working as expected

Phing targets
-------------

[](#phing-targets)

Commonly used targets

- build
- test
- package

Helpful for development:

- `pak` - builds a .sspak file at mysite/build/site.sspak . Useful for CI
- `phpstan` - Runs [PHPStan](https://github.com/phpstan/phpstan) + [PHPStan for SilverStripe](https://github.com/silbinarywolf/silverstripe-phpstan) if it's installed via Composer. Useful for static analysis of PHP code.
    - Define folders to scan by placing following in your build.xml file, underneath the `` tag.
        - ``

Composer scripts
----------------

[](#composer-scripts)

If your themes use yarn based dependencies, you can add the following post-install scripts to be triggered by a composer call, which will ensure the node\_modules are installed correctly

```
    "scripts": {
		"post-update-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		],
		"post-install-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		]
	},

```

Optional Scripts
----------------

[](#optional-scripts)

There are three scripts that may optionally be used for your projects, and can be done using the following commands.

### sh build/scripts/cache

[](#sh-buildscriptscache)

This will clear out any project cache files (for all projects), and is basically the forced equivalent of doing a ?flush for everything in your site.

### sh ~/path/to/permissions

[](#sh-pathtopermissions)

This requires you to update the "{user}" and as such will need to be copied out to a location of your choice, and will apply the appropriate owner and permissions to both the cache and repository.

### sh build/scripts/recursive-status

[](#sh-buildscriptsrecursive-status)

This will recursively trigger a "git status" on each module directory found within your repository, primarily so you check for changes that may have been made in a module that hasn't been included in the repository code base.

### sh build/scripts/recursive-status assume-unchanged-listing

[](#sh-buildscriptsrecursive-status-assume-unchanged-listing)

When you have patched files (resulting in them coming up as being modified during a recursive-status), you can `git update-index --assume-unchanged {file_name}`, and use this script with a parameter. This will not only list out the files that have been assumed unchanged, but it will also force the files to reflect the upstream. This makes sure you don't have local changes that have been accidentally made, however it will also remove any patches that were put in place. Therefore, you can run this and then `phing` to ensure the patches remain in place.

Excluding files from packages
-----------------------------

[](#excluding-files-from-packages)

Create a {root}/.pkgignore file with a set of paths to be excluded from built up package files

```
vendor/un-used/module/
themes/mytheme/node_modules/
mysite/cypress/

```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 61.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~29 days

Recently: every ~91 days

Total

78

Last Release

1804d ago

Major Versions

3.2.2 → 4.3.02018-05-17

3.3.x-dev → 5.0.02018-06-12

4.4.x-dev → 5.1.02018-07-03

3.4.0 → 5.2.02018-08-21

3.4.x-dev → 5.2.62020-01-20

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/23506857?v=4)[Symbiote](/maintainers/symbiote)[@symbiote](https://github.com/symbiote)

---

Top Contributors

[![nyeholt](https://avatars.githubusercontent.com/u/161730?v=4)](https://github.com/nyeholt "nyeholt (24 commits)")[![stephenmcm](https://avatars.githubusercontent.com/u/2093185?v=4)](https://github.com/stephenmcm "stephenmcm (4 commits)")[![rodneyway](https://avatars.githubusercontent.com/u/568332?v=4)](https://github.com/rodneyway "rodneyway (3 commits)")[![owindsor](https://avatars.githubusercontent.com/u/199285?v=4)](https://github.com/owindsor "owindsor (2 commits)")[![silbinarywolf](https://avatars.githubusercontent.com/u/3859574?v=4)](https://github.com/silbinarywolf "silbinarywolf (2 commits)")[![robbash](https://avatars.githubusercontent.com/u/1186986?v=4)](https://github.com/robbash "robbash (1 commits)")[![MasonD](https://avatars.githubusercontent.com/u/612454?v=4)](https://github.com/MasonD "MasonD (1 commits)")[![KhushbuFuletra](https://avatars.githubusercontent.com/u/51351463?v=4)](https://github.com/KhushbuFuletra "KhushbuFuletra (1 commits)")[![alexclifford](https://avatars.githubusercontent.com/u/184942?v=4)](https://github.com/alexclifford "alexclifford (1 commits)")

---

Tags

silverstripebuild

### Embed Badge

![Health badge](/badges/symbiote-silverstripe-build/health.svg)

```
[![Health](https://phpackages.com/badges/symbiote-silverstripe-build/health.svg)](https://phpackages.com/packages/symbiote-silverstripe-build)
```

###  Alternatives

[silverstripe/cms

The SilverStripe Content Management System

5163.4M1.3k](/packages/silverstripe-cms)[silverstripe/admin

SilverStripe admin interface

262.6M325](/packages/silverstripe-admin)[silverstripe/deploynaut

The SilverStripe deployment framework

723.5k2](/packages/silverstripe-deploynaut)[silverstripe/silverstripe-omnipay

SilverStripe Omnipay Payment Module

38106.0k15](/packages/silverstripe-silverstripe-omnipay)[silverleague/ideannotator

Generate PHP DocBlock annotations for DataObject and DataExtension databasefields and relation methods

4768.0k43](/packages/silverleague-ideannotator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
