3.2.0 ā€¢ Published 4 years ago

@dylanvann/multi-semantic-release v3.2.0

Weekly downloads
5
License
0BSD
Repository
github
Last release
4 years ago

@qiwi/multi-semantic-release

hacky semantic-release for monorepos

Travis CI semantic-release Maintainability Test Coverage

This fork of dhoub/multi-semantic-release replaces setImmediate loops and execa.sync hooks with event-driven flow and finally makes possible to run the most release operations in parallel.
šŸŽ‰ šŸŽ‰ šŸŽ‰

Install

yarn add @qiwi/multi-semantic-release --dev

Usage

multi-semantic-release

Configuration

MSR requires semrel config to be added in any supported format for each package or/and declared in repo root (globalConfig is extremely useful if all the modules have the same strategy of release).
NOTE config resolver joins globalConfig and packageConfig during execution.

// Load the package-specific options.
const { options: pkgOptions } = await getConfig(dir);

// The 'final options' are the global options merged with package-specific options.
// We merge this ourselves because package-specific options can override global options.
const finalOptions = Object.assign({}, globalOptions, pkgOptions);

Verified examples

We use this tool to release our JS platform code inhouse (GitHub Enterprise + JB TeamCity) and for our OSS (GitHub + Travis CI). Guaranteed working configurations available in projects.