PHPackages                             mmz-srf/sbs - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mmz-srf/sbs

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

mmz-srf/sbs
===========

Split your build process into multiple steps which get executed only if they need to

1.4.4(5y ago)09.6kMITPHPPHP ^7.2

Since Oct 10Pushed 5y ago8 watchersCompare

[ Source](https://github.com/mmz-srf/sbs)[ Packagist](https://packagist.org/packages/mmz-srf/sbs)[ RSS](/packages/mmz-srf-sbs/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (4)Versions (11)Used By (0)

SBS - Super Build Script
========================

[](#sbs---super-build-script)

SBS allows to build just parts of a mono repo in a CI environment.

E.g. you have a React application and a PHP backend in the same repository. When the repository gets built, the PHP Unit tests get executed and also the React Application gets built and tested. This always happens when you push something to the master branch.

Building the React app when only a PHP file is modified is not needed.

SBS allows to define conditions when a certain build step is needed and executes only the needed parts.

The build steps are defined in a YAML file the root directory.

sbs.yml
-------

[](#sbsyml)

```
composer:
    title: Composer dependencies
    cmd: "composer install"
    files:
        - composer.lock
    output: vendor

```

This defines a build step named `composer`. It gets only executed if the file `composer.lock` gets modified. In this case the command `composer install` gets executed.

When to build a build step
--------------------------

[](#when-to-build-a-build-step)

SBS decides if it has to build the build step according to the specification in sbs.yml SBS can decide this according to:

- hash of files or directories (use `files`)
- hash of last commit of a branch in a git repository (use `commit`)

SBS stores the hashes of the build afterwards in a file called `sbs.built.json`in the given `output` directory of the build step. (eg `vendor/sbs.built.json`) in this case. This is used to check if the build step is needed to be built in the next run.

SBS does this:

- Read all build steps
- Create hash (according to build step config) of build step
- Reads hash of last built step (if any)
- Runs the command if the new hash is different to the one of the last build
- Stores the new hash for the next run

Configuration reference
-----------------------

[](#configuration-reference)

```
buildstep:
    title: the title which gets displayed on building, defaults to build step name
    cmd: the command to build this build step, required
    timeout: seconds the command has to execute before it timeouts, defaults to 3600
    working_dir: if the working directory of the command is not the project root, specify it here
    clear: if the output directly should be cleared before building, defaults to false
    output: where SBS writes the information which last state of the build step is built, required
    depends_on: name of other build step which hash gets included
    commit: tells SBS to look if there is a new commit hash on a certain repository
        repo: the link to the repository
        branch: the branch name
    files: list of files or directory

```

Installation and usage
----------------------

[](#installation-and-usage)

```
composer require mmz-srf/sbs --dev

```

To create an initial sbs.yml:

```
vendor/bin/sbs init

```

To build the build steps:

```
vendor/bin/sbs

```

To build only one specific step:

```
vendor/bin/sbs build buildStepName

```

To force to build all build steps

```
vendor/bin/sbs --force

```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83% 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 ~56 days

Recently: every ~32 days

Total

10

Last Release

1907d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/98636bdd1f41da10b8d841b447b2368336fd6e8b22880e70425178c6265223ca?d=identicon)[services.mmz](/maintainers/services.mmz)

---

Top Contributors

[![mms-uret](https://avatars.githubusercontent.com/u/900354?v=4)](https://github.com/mms-uret "mms-uret (44 commits)")[![claudio-walser](https://avatars.githubusercontent.com/u/2269713?v=4)](https://github.com/claudio-walser "claudio-walser (6 commits)")[![pchr-srf](https://avatars.githubusercontent.com/u/21658108?v=4)](https://github.com/pchr-srf "pchr-srf (2 commits)")[![pascalvb](https://avatars.githubusercontent.com/u/261884?v=4)](https://github.com/pascalvb "pascalvb (1 commits)")

### Embed Badge

![Health badge](/badges/mmz-srf-sbs/health.svg)

```
[![Health](https://phpackages.com/badges/mmz-srf-sbs/health.svg)](https://phpackages.com/packages/mmz-srf-sbs)
```

###  Alternatives

[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M568](/packages/symfony-maker-bundle)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5205.3M82](/packages/symplify-monorepo-builder)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6939.5M343](/packages/drupal-core-recommended)

PHPackages © 2026

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