Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sylc/release_up
:seedling: Automate releases with breeze
https://github.com/sylc/release_up
deno-module release-automation
Last synced: 3 months ago
JSON representation
:seedling: Automate releases with breeze
- Host: GitHub
- URL: https://github.com/sylc/release_up
- Owner: sylc
- License: other
- Created: 2022-05-28T13:29:10.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-02T15:48:37.000Z (5 months ago)
- Last Synced: 2024-06-03T06:39:13.225Z (5 months ago)
- Topics: deno-module, release-automation
- Language: TypeScript
- Homepage:
- Size: 369 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![JSR](https://jsr.io/badges/@sylc/release_up)](https://jsr.io/@sylc/release_up)
🌱 release_up
Automate semver releases in Deno 🦕# Motivation
This projects allows to perform automatically tasks required at release time
like for example:- Updating version numbers in the readme, according to the new tag.
- Updating links in readme.
- Creating a changelog.
- Creating a new tag based on existing ones
- Pushing a release to github.Most changes are optionals and configurable.
# Installation
```
deno install --global --force -A -n release_up jsr:@sylc/release-up
```# Usage
```
Usage: release_up [name]
Version: 0.6.0 Description:Automate semver releases.
Example: release_up major --githubRelease 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 eg: 1.2.3 -> 1.2.4-name.0
* preminor eg: 1.2.3 -> 1.3.0-name.0
* premajor eg: 1.2.3 -> 2.0.0-name.0
* prerelease eg: 1.2.3-name.0 -> 1.2.3-name.1Options:
-h, --help - Show this help.
-V, --version - Show the version number for this program.
--config - Define the path of the config. (Default: ".release_up.json")
--github - Enable Github plugin.
--changelog - Enable Changelog plugin.
--versionFile - Enable VersionFile plugin.
--regex - Enable Regex plugin. The regex need to be provided as string.
--dry - Dry run, Does not commit any changes.
--allowUncommitted - Allow uncommited change in the repo.
--debug - Enable debug logging.
```# Plugins
release_up supports local and remote plugins. By default, plugins are **NOT**
enabled. To enable them, either- Use a cli flag
- Create a `.release_up.json` file that has a key matching the plugin. Example
of configuration.```json
// .release_up.json
{
"changelog": {},
"github": {
"release": true
},
"regex": [
{
"file": "README.md",
"patterns": [
"(?<=@)(.*)(?=\/cli)"
]
},
{
"file": "deno.json",
"patterns": [
"(?<=\"version\": \")(.*)(?=\",)"
]
}
],
"versionFile": {},
"myRemotePlugin": {
"path": "./plugins/testRemote/mod.ts"
}
}
```## Baked-in plugins
- [github](./doc/doc.md#github): Create a release on Github.
- [changelog](./doc/doc.md#changelog): Create a changelog based on filtered
commits.
- [regex](./doc/doc.md#changelog): Apply a regex on `README.md`
- [versionFile](./plugins/versionFile/mod.ts): 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](/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=
```# Examples
- [Github Actions worflow](.github/workflows/bump.yml)
# Credits
Big Credits to [denosaurs](https://github.com/denosaurs). This project is a fork
of [release](https://github.com/denosaurs/release). The current core features
have been implemented by it.## Inspiration
This project is inspired by node project
[release-it](https://github.com/release-it/release-it)## Contribution
Pull request, issues and feedback are very welcome. Code style is formatted with
deno fmt.## LICENSE
MIT