@ubic/release-it-config 0.1.9 → 0.1.10-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -3
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/scripts/print-docker-image.js +21 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,15 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
## Требования
|
|
6
6
|
|
|
7
|
-
- `release-it` 18
|
|
7
|
+
- `release-it` 18 [https://github.com/release-it/release-it](https://github.com/release-it/release-it)
|
|
8
8
|
- `@release-it/conventional-changelog` 10 и новее.\* [https://github.com/release-it/conventional-changelog](@release-it/conventional-changelog)
|
|
9
|
+
- Удалить пакет `conventional-changelog-conventionalcommits` из проекта. Подробнее в [FAQ](./README.md?ref_type=heads#faq)
|
|
10
|
+
|
|
11
|
+
> Важно!
|
|
12
|
+
>
|
|
13
|
+
> Версия release-it 19+ требует версию nodejs 22, необходимо устанавливать именно 18 версию.
|
|
9
14
|
|
|
10
15
|
## Установка
|
|
11
16
|
|
|
12
17
|
Установить в проект конфиг и пакеты утилиты:
|
|
13
18
|
|
|
14
19
|
```
|
|
15
|
-
yarn add -D release-it @release-it/conventional-changelog @ubic/release-it-config
|
|
20
|
+
yarn add -D release-it@18.1.2 @release-it/conventional-changelog @ubic/release-it-config
|
|
16
21
|
```
|
|
17
22
|
|
|
18
23
|
## Настройка
|
|
@@ -21,8 +26,9 @@ yarn add -D release-it @release-it/conventional-changelog @ubic/release-it-confi
|
|
|
21
26
|
|
|
22
27
|
```ts
|
|
23
28
|
import { releaseItConfig } from '@ubic/release-it-config';
|
|
29
|
+
import { type Config } from 'release-it';
|
|
24
30
|
|
|
25
|
-
export default releaseItConfig;
|
|
31
|
+
export default releaseItConfig satisfies Config;
|
|
26
32
|
```
|
|
27
33
|
|
|
28
34
|
Добавить в package.json скрипт для релиза
|
|
@@ -71,3 +77,15 @@ yarn release --preRelease=beta
|
|
|
71
77
|
```
|
|
72
78
|
|
|
73
79
|
Подробное описание процесса сбора pre-релизов описано в [документации release-it](https://github.com/release-it/release-it/blob/main/docs/pre-releases.md).
|
|
80
|
+
|
|
81
|
+
## FAQ
|
|
82
|
+
|
|
83
|
+
- _Формат changelog не разделяется по секциям (добавлено, изменено и т.д.) и выглядит как-то так:_
|
|
84
|
+
|
|
85
|
+
> ## <small>2.6.9 (2025-06-10)</small>
|
|
86
|
+
>
|
|
87
|
+
> - Фильтрация списка пользователей [[787ce72](https://gitlab.com/path/to/repo/commit/787ce72889daf779957b334b4a514c64b1643831)]
|
|
88
|
+
|
|
89
|
+
**Проблема:** в проекте установлена dev-зависимость `conventional-changelog-conventionalcommits` и ее версия ниже 8.0.0.
|
|
90
|
+
|
|
91
|
+
**Решение:** удалить пакет `conventional-changelog-conventionalcommits` из проекта.
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},g=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of u(t))!l.call(e,o)&&o!==r&&n(e,o,{get:()=>t[o],enumerable:!(i=p(t,o))||i.enumerable});return e};var h=e=>g(n({},"__esModule",{value:!0}),e);var C={};m(C,{releaseItConfig:()=>a});module.exports=h(C);var s={feat:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E",fix:"\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",refactor:"\u0420\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433",docs:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",test:"\u0422\u0435\u0441\u0442\u044B",build:"\u0421\u0431\u043E\u0440\u043A\u0430",perf:"\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ci:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 CI/CD",style:"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u043C\u043E\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",chore:"\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435"};var d={"@release-it/conventional-changelog":{preset:{name:"conventionalcommits"},infile:"CHANGELOG.md",header:"# \u0418\u0441\u0442\u043E\u0440\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",writerOpts:{groupBy:"type",transform:e=>{if(!e.body&&!e.subject)return!1;let t=s[e.type]||s.chore,r=(e?.hash||"").substring(0,7);return{...e,shortHash:r,type:t}},commitPartial:`-{{#if scope}} **{{scope}}:**{{/if}} {{#if body}}{{body}}{{else}}{{subject}}{{/if}}{{#if hash}} [[{{shortHash}}]({{@root.repoUrl}}/{{@root.owner}}/{{@root.repository}}/commit/{{hash}})]{{/if}}{{#each references}} [[{{prefix}}{{issue}}](https://youtrack.ubic.tech/issue/{{prefix}}{{issue}})]{{/each}}
|
|
2
|
-
`,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(s),i=r.indexOf(e.title),o=r.indexOf(t.title),f=i!==-1?i:Number.MAX_SAFE_INTEGER,c=o!==-1?o:Number.MAX_SAFE_INTEGER;return f-c}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},a={git:{requireBranch
|
|
2
|
+
`,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(s),i=r.indexOf(e.title),o=r.indexOf(t.title),f=i!==-1?i:Number.MAX_SAFE_INTEGER,c=o!==-1?o:Number.MAX_SAFE_INTEGER;return f-c}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},a={git:{requireBranch:!1,requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:d};
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var o={feat:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E",fix:"\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",refactor:"\u0420\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433",docs:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",test:"\u0422\u0435\u0441\u0442\u044B",build:"\u0421\u0431\u043E\u0440\u043A\u0430",perf:"\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ci:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 CI/CD",style:"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u043C\u043E\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",chore:"\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435"};var f={"@release-it/conventional-changelog":{preset:{name:"conventionalcommits"},infile:"CHANGELOG.md",header:"# \u0418\u0441\u0442\u043E\u0440\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",writerOpts:{groupBy:"type",transform:e=>{if(!e.body&&!e.subject)return!1;let t=o[e.type]||o.chore,r=(e?.hash||"").substring(0,7);return{...e,shortHash:r,type:t}},commitPartial:`-{{#if scope}} **{{scope}}:**{{/if}} {{#if body}}{{body}}{{else}}{{subject}}{{/if}}{{#if hash}} [[{{shortHash}}]({{@root.repoUrl}}/{{@root.owner}}/{{@root.repository}}/commit/{{hash}})]{{/if}}{{#each references}} [[{{prefix}}{{issue}}](https://youtrack.ubic.tech/issue/{{prefix}}{{issue}})]{{/each}}
|
|
2
|
-
`,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(o),i=r.indexOf(e.title),s=r.indexOf(t.title),n=i!==-1?i:Number.MAX_SAFE_INTEGER,a=s!==-1?s:Number.MAX_SAFE_INTEGER;return n-a}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},c={git:{requireBranch
|
|
2
|
+
`,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(o),i=r.indexOf(e.title),s=r.indexOf(t.title),n=i!==-1?i:Number.MAX_SAFE_INTEGER,a=s!==-1?s:Number.MAX_SAFE_INTEGER;return n-a}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},c={git:{requireBranch:!1,requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:f};export{c as releaseItConfig};
|
|
@@ -14,14 +14,29 @@ const version = exec('git describe --tags --abbrev=0').replace(/^v/, '');
|
|
|
14
14
|
// Получаем URL репозитория из git config
|
|
15
15
|
const remoteUrl = exec('git config --get remote.origin.url');
|
|
16
16
|
|
|
17
|
-
// Извлекаем
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
|
|
17
|
+
// Извлекаем hostname
|
|
18
|
+
let hostname;
|
|
19
|
+
if (remoteUrl.startsWith('http')) {
|
|
20
|
+
const { hostname: parsedHost } = new URL(remoteUrl);
|
|
21
|
+
hostname = parsedHost;
|
|
22
|
+
} else {
|
|
23
|
+
const sshMatch = remoteUrl.match(/^git@([^:]+):/);
|
|
24
|
+
hostname = sshMatch?.[1] ?? '';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Извлекаем путь (например: gitlab.ubic.tech/dit/tsar/komanda-a/front)
|
|
28
|
+
const pathMatch = remoteUrl.match(/[:\/](.+?)\.git$/);
|
|
29
|
+
if (!pathMatch) {
|
|
30
|
+
console.error('❌ Не удалось извлечь путь из remote URL:', remoteUrl);
|
|
21
31
|
process.exit(1);
|
|
22
32
|
}
|
|
23
33
|
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
let repoPath = pathMatch[1]
|
|
35
|
+
.split('/')
|
|
36
|
+
// удаляем hostname и пустые части
|
|
37
|
+
.filter((part) => part !== hostname && part.length > 0)
|
|
38
|
+
.join('/');
|
|
39
|
+
|
|
40
|
+
const dockerImage = `${DOCKER_REGISTRY_URL}/${repoPath}:v${version}`;
|
|
26
41
|
|
|
27
42
|
console.log(`\n📦 Docker образ будет доступен по адресу:\n👉 ${dockerImage}`);
|