У меня есть проект npm с версионированием тегов, что означает, что фактическая версия проекта хранится только в тегах git, а не в package.json, который всегда останется равным 0.0.0
Мне нужно поддерживать эту систему управления версиями, возможно, с помощью инструментов npm.
Итак, в Jenkinsfile:
npm version from-git // Obtain last Tag version from git and store it in package.json, it also does an automatic tag and commit for git (which I absolutely don't like)
npm version patch // Upgrade package.json to a +1 patch version, prepare Tag and Commit for git.
git push --tags // Push new Tag to git
все вышеперечисленное явно не работает, так как я понял, что версия npm не создает аннотированные теги, которые приводят к тому, что npm всегда читает одно и то же и первый тег 0.0.0, поэтому я изменил код в Jenkinsfile следующим образом:
npm --no-git-tag-version version from-git // Same above without automatic git Tag
TAG_VERSION = sh (
script: 'npm --no-git-tag-version version patch',
returnStdout: true
).trim() // Store the patch version in a temp variable without automatic git Tag
git tag VERSION -a -m"New Tag Version: ${TAG_VERSION}" // Create the new Tag
git push --tags // Push new annotated Tag to git
но это тоже не работает; npm делает некоторые странные вещи, следуя выводу git show для Tag v0.0.1:
$ git show v0.0.1
tag v0.0.1
Tagger: me
Date: today
New Tag: %s
commit blablabla
Author: me
Date: today
diff --git a/package-lock.json b/package-lock.json
index
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "agency-vthp-frontend",
- "version": "0.0.10",
+ "version": "0.0.0",
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "agency-vthp-frontend",
- "version": "0.0.10",
+ "version": "0.0.0",
"author": “me”,
"license": "UNLICENSED",
"repository": "myrepo"
и вывод git show для тега v0.0.2:
$ git show v0.0.2
tag v0.0.2
Tagger: me
Date: today
New Tag
commit blablabla2
Author: me
Date: today
Releasing 0.0.1
diff --git a/package-lock.json b/package-lock.json
index
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "agency-vthp-frontend",
- "version": "0.0.0",
+ "version": "0.0.1",
index
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "agency-vthp-frontend",
- "version": "0.0.0",
+ "version": "0.0.1",
"author": "me
"license": "UNLICENSED",
"repository": "myrepo"