release_up
A fork of release by denosaurs
Installation
$ deno install -A -f --no-check -n release_up -r https://deno.land/x/release@0.2.2/release_up.ts
Usage
usage: release_up [options] <type> [...]
example: release_up major
[options]:
-h --help Show this message
--dry Prevent changes to git
--allowUncommited Allow some changes to be uncommited
[type]:
release type:
* patch eg: 1.2.3 -> 1.2.4
* minor eg: 1.2.3 -> 1.3.0
* major eg: 1.2.3 -> 2.0.0
* prepatch <name> eg: 1.2.3 -> 1.2.4-name
* preminor <name> eg: 1.2.3 -> 1.2.4-name
* premajor <name> eg: 1.2.3 -> 1.2.4-name
Plugins
release_up supports local and remote plugins. By default, plugins are NOT
enabled. To enable them, create a .release_up.json
file that has a key
matching the plugin. Example of configuration.
// .release_up.json
{
"changelog": {},
"github": {
"release": true
},
"regex": {
"patterns": [
"/(?<=@)(.*)(?=\/)/gm",
"(?<=release_up\/)(.*)(?=\/cli)"
]
},
"versionFile": {},
"myRemotePlugin": {
"path": "./plugins/testRemote/mod.ts"
}
}
Baked-in plugins
- github: Create a release on Github.
- changelog: Create a changelog based on filtered commits.
- regex: Apply a regex on
README.md
- versionFile: Create a
version.json
file with the new version number.
Remote plugins
Plugins can also be defined externally. In that case they must have a “path” property in their config. The path can be either a local path or http(s) path.
A plugin must contain a default export with the signature defined at ./plugins.ts
Secrets
release_up uses dotenv to load environment variables. For example for
interactiong with Github, set a .env
file with the below
GITHUB_TOKEN=<my secret token>
Credits
Big Credits to denosaurs. This project is a fork of release. The current core features have been implemented by it.
Inspiration
this project is inspired by node project release-it
Contribution
Pull request, issues and feedback are very welcome. Code style is formatted with deno fmt.