From 457a1f8c1b81e9010efcf8c04358eacee9cddb50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Murat=20Go=CC=88zel?= Date: Sun, 3 Jul 2022 14:31:09 +0300 Subject: [PATCH] Updated git push method. Updated readme. --- .idea/.gitignore | 5 +++ .idea/markdown.xml | 8 ++++ .idea/modules.xml | 8 ++++ .idea/node-releaser.iml | 12 +++++ .idea/vcs.xml | 6 +++ README.md | 94 ++++++++++++++++++++------------------- github-sample.png | Bin 0 -> 28083 bytes package.json | 2 +- src/modules/git/index.js | 12 +++-- 9 files changed, 94 insertions(+), 53 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/markdown.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/node-releaser.iml create mode 100644 .idea/vcs.xml create mode 100644 github-sample.png diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/markdown.xml b/.idea/markdown.xml new file mode 100644 index 0000000..97c5c1b --- /dev/null +++ b/.idea/markdown.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6515022 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/node-releaser.iml b/.idea/node-releaser.iml new file mode 100644 index 0000000..0c8867d --- /dev/null +++ b/.idea/node-releaser.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 29035d5..184fdb9 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ # node-releaser -Automated versioning and package publishing tool. Supports semver and calver. Extendible with plugins. +Automated versioning and package publishing tool. Supports [semver](https://semver.org) and [calver](https://calver.org). Extendible with plugins. ![NPM](https://img.shields.io/npm/l/node-releaser) [![npm version](https://badge.fury.io/js/node-releaser.svg)](https://badge.fury.io/js/node-releaser) ![npm bundle size](https://img.shields.io/bundlephobia/min/node-releaser) ![npm](https://img.shields.io/npm/dy/node-releaser) +It is simply: `releaser patch -m "commit message"` and you get this: ![](github-sample.png "Github Sample graphic") + ## Introduction `releaser` is based on `git` and `node.js`. Any developer who works with `git` can use it to automate releasing and publishing process of any project. Here is a summary of what can be done with releaser: 1. Use [semver](https://github.com/npm/node-semver) or [calver](https://github.com/muratgozel/node-calver) in your project. New versions computed automatically as you release. This feature based on git tags. @@ -28,7 +30,34 @@ releaser --version ``` ### Create A Configuration File (.releaser.json) -First, this is the schema to write valid configuration files: +In your project folder, create a configuration file. A sample could be: +```json +{ + "versioning": { + "scheme": "semver" + }, + "npm": { + "enable": true, + "updatePkgJson": true, + "publish": true + }, + "github": { + "enable": true, + "release": true + } +} +``` +This configuration will: +1. Generate the next version according to **semver** scheme, +2. Prefix the version number with **v** (because its by default), +3. Updates package.json version field (because npm.updatePkgJson enabled), +4. Push the changes to the remote repository (because github.enabled), +5. Creates a release on Github (because github.release), +6. Publishes the package on npm. + +In order to Github releasing work we need to specify [Github access token](https://github.com/settings/tokens). It can be specified as env var `RELEASER_GITHUB_TOKEN=...` or a cli arg `--github-token` while executing the command. Optionally a credential management service such as [Doppler](https://www.doppler.com) can be used. + +Releaser has various config options. This is the schema to write valid configuration files: ```js versioning: { scheme: { @@ -192,36 +221,27 @@ cmd: { } } ``` -An example `.releaser.json` file could be: -```json -{ - "versioning": { - "scheme": "semver" - }, - "npm": { - "enable": true, - "updatePkgJson": true, - "publish": true - }, - "github": { - "enable": true, - "release": true - } -} -``` -This configuration will: -1. Generate the next version according to **semver** scheme, -2. Prefix the version number with **v** (because its by default), -3. Updates package.json's version field (because npm.updatePkgJson enabled), -3. Push the changes to the remote repository (because github.enabled), -4. Creates a release on Github (because github.release), -5. Publishes the package on npm. -We didn't specify `github.token` because we can not put it inside file of course. We will specify it as env var `RELEASER_GITHUB_TOKEN=...` or a cli arg `--github-token`. ### Running releaser -Releaser only need two things in order to run. The level and commit messages. Level is the version level. major, minor etc. in semver or calendar, calendar.major etc. in calver. Commit messages are one or more -m flags that explain the changes in the codebase in that release. +Releaser only need two things in order to run. The level and commit messages. Level is the version level. major, minor etc. for **semver** or calendar, calendar.major etc. for **calver**. Commit messages are one or more -m flags that explain the changes in the codebase in that release. + +Make a release: +```sh +releaser major -m "initial release." +``` -Look at available commands: +Specify multiple messages: +```sh +releaser minor -m "fixed something" -m "added something." +``` + +Specify a tag as the current tag: +```sh +releaser major -m "initial release." --current-tag v3.0.0 +``` +Normally, releaser query git to find the current tag. + +Available commands for reference: ```sh releaser [args] @@ -271,22 +291,6 @@ Options: --help Show help [boolean] ``` -Make a release: -```sh -releaser major -m "initial release." -``` - -Specify multiple messages: -```sh -releaser minor -m "fixed something" -m "added something." -``` - -Specify a tag as the current tag: -```sh -releaser major -m "initial release." --current-tag v3.0.0 -``` -Normally, module query git to find the current tag. - ## Default Plugins 1. **Github**: Github plugin is for creating releases on Github. 2. **Gitlab**: Gitlab plugin is for creating releases on Gitlab. diff --git a/github-sample.png b/github-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..c5db59dbc0940f37e166a02eb84c06b1bad2400a GIT binary patch literal 28083 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 Mj=}Acn|2ZZ14iixPXGV_ literal 0 HcmV?d00001 diff --git a/package.json b/package.json index e3bdff3..20a9757 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-releaser", - "version": "0.7.0", + "version": "0.7.1", "description": "Automated versioning and package publishing tool. Supports semver and calver. Extendible with plugins.", "main": "src/index.js", "bin": { diff --git a/src/modules/git/index.js b/src/modules/git/index.js index ff511dd..de4e4d9 100644 --- a/src/modules/git/index.js +++ b/src/modules/git/index.js @@ -95,16 +95,14 @@ function push(nextTag, messages) { const branch = getBranchName() const commands = [ 'git tag -a "' + nextTag + '" ' + msgscmd, - 'git add .', + 'git add --ignore-removal .', 'git commit ' + msgscmd, 'git push --atomic origin ' + branch + ' ' + nextTag + '' ] - for (let i = 0; i < commands.length; i++) { - try { - execSync(commands[i], {stdio: 'inherit', encoding: 'utf8'}) - } catch (e) { - throw e - } + try { + execSync(commands.join(' && '), {stdio: 'inherit', encoding: 'utf8'}) + } catch (e) { + throw e } }