Use @release-it/bumper to handle version in sonar-project.properties
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 26 Oct 2022 19:17:16 +0000 (21:17 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 26 Oct 2022 19:17:16 +0000 (21:17 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
.release-it.json
package-lock.json
package.json
updateSonarProps.sh [deleted file]

index 74398d6201c669fa64762b99363c2373cb9f23cf..2ce404dbdfa9e3917b2aeccce9e78d2c399111cd 100644 (file)
     "releaseName": "v${version}",
     "tokenRef": "GITHUB_TOKEN_POOLIFIER"
   },
-  "hooks": {
-    "after:bump": "npm run sonar:properties"
-  },
   "plugins": {
+    "@release-it/bumper": {
+      "out": ["sonar-project.properties"]
+    },
     "@release-it/keep-a-changelog": {
       "filename": "CHANGELOG.md",
       "addUnreleased": true
index a3613484d68797805caf0b5d53a126af9b7411eb..46b1934d91d869ce7bc7b48827e4f9a6c7234eb7 100644 (file)
@@ -15,6 +15,7 @@
       ],
       "license": "MIT",
       "devDependencies": {
+        "@release-it/bumper": "^4.0.0",
         "@release-it/keep-a-changelog": "^3.1.0",
         "@types/node": "^18.11.5",
         "@typescript-eslint/eslint-plugin": "^5.41.0",
         "node": ">=12"
       }
     },
+    "node_modules/@release-it/bumper": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@release-it/bumper/-/bumper-4.0.0.tgz",
+      "integrity": "sha512-DswMVRuWNeeuDPd8DNpMhuHjqxnwOi5A+v9CTrbAQ7/1K+VOGUGItS4ekjWfb1qBvJw/ouiAinBo9ckjtnhktA==",
+      "dev": true,
+      "dependencies": {
+        "@iarna/toml": "^2.2.5",
+        "detect-indent": "^7.0.0",
+        "fast-glob": "^3.2.7",
+        "ini": "^3.0.0",
+        "js-yaml": "^4.1.0",
+        "lodash.castarray": "^4.4.0",
+        "lodash.get": "^4.4.2",
+        "lodash.set": "^4.3.2",
+        "semver": "^7.3.7"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "peerDependencies": {
+        "release-it": "^15.0.0-esm.4"
+      }
+    },
+    "node_modules/@release-it/bumper/node_modules/ini": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
+      "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
+      "dev": true,
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
     "node_modules/@release-it/keep-a-changelog": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/@release-it/keep-a-changelog/-/keep-a-changelog-3.1.0.tgz",
       "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
       "dev": true
     },
+    "node_modules/detect-indent": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz",
+      "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.20"
+      }
+    },
     "node_modules/diff": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
       "dev": true
     },
+    "node_modules/lodash.castarray": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
+      "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
+      "dev": true
+    },
     "node_modules/lodash.get": {
       "version": "4.4.2",
       "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
       "dev": true
     },
+    "node_modules/lodash.set": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
+      "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
+      "dev": true
+    },
     "node_modules/log-symbols": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
         "config-chain": "^1.1.11"
       }
     },
+    "@release-it/bumper": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@release-it/bumper/-/bumper-4.0.0.tgz",
+      "integrity": "sha512-DswMVRuWNeeuDPd8DNpMhuHjqxnwOi5A+v9CTrbAQ7/1K+VOGUGItS4ekjWfb1qBvJw/ouiAinBo9ckjtnhktA==",
+      "dev": true,
+      "requires": {
+        "@iarna/toml": "^2.2.5",
+        "detect-indent": "^7.0.0",
+        "fast-glob": "^3.2.7",
+        "ini": "^3.0.0",
+        "js-yaml": "^4.1.0",
+        "lodash.castarray": "^4.4.0",
+        "lodash.get": "^4.4.2",
+        "lodash.set": "^4.3.2",
+        "semver": "^7.3.7"
+      },
+      "dependencies": {
+        "ini": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
+          "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
+          "dev": true
+        }
+      }
+    },
     "@release-it/keep-a-changelog": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/@release-it/keep-a-changelog/-/keep-a-changelog-3.1.0.tgz",
       "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
       "dev": true
     },
+    "detect-indent": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz",
+      "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==",
+      "dev": true
+    },
     "diff": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
       "dev": true
     },
+    "lodash.castarray": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
+      "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
+      "dev": true
+    },
     "lodash.get": {
       "version": "4.4.2",
       "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
       "dev": true
     },
+    "lodash.set": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
+      "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
+      "dev": true
+    },
     "log-symbols": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
index e10aa03c4ad4ac110dba032956a7f58193c0b534..1ccd21e01f83ba44684a07bbd968f671de1f6ebe 100644 (file)
@@ -22,7 +22,6 @@
     "lint:report": "eslint . --cache --format json --output-file reports/eslint.json",
     "release": "release-it",
     "typedoc": "typedoc",
-    "sonar:properties": "./updateSonarProps.sh",
     "prepublishOnly": "npm run build:prod"
   },
   "ts-standard": {
@@ -85,6 +84,7 @@
     "lib"
   ],
   "devDependencies": {
+    "@release-it/bumper": "^4.0.0",
     "@release-it/keep-a-changelog": "^3.1.0",
     "@types/node": "^18.11.5",
     "@typescript-eslint/eslint-plugin": "^5.41.0",
diff --git a/updateSonarProps.sh b/updateSonarProps.sh
deleted file mode 100755 (executable)
index d29ed6a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env bash
-#title          : updateSonarProps.sh
-#description    :
-# This script parses the project's name and version from its package.json and automagically
-# updates the version and package name in the SonarQube configuration properties file.
-# It can be used as a pre step before running the sonar-scanner command
-#
-#prerequisites  : NodeJS based project with package.json, sonar*.properties file in the cwd
-#author         : Christian-André Giehl <christian@emailbrief.de>
-#modified by    : Daniel Duarte <danieldd.ar@gmail.com>
-#date           : 20180220
-#version        : 1.1
-#usage          : sh updateSonarProps.sh
-#==============================================================================
-echo "Updating the SonarQube properties..."
-
-# Get the project name from package.json
-PACKAGE_NAME=$(cat package.json \
-  | grep name \
-  | head -1 \
-  | awk -F: '{ print $2 }' \
-  | sed 's/[",]//g' \
-  | tr -d '[[:space:]]')
-echo "Project: ${PACKAGE_NAME}"
-
-# Get the version from package.json
-PACKAGE_VERSION=$(cat package.json \
-  | grep version \
-  | head -1 \
-  | awk -F: '{ print $2 }' \
-  | sed 's/[",]//g' \
-  | tr -d '[[:space:]]')
-echo "Version: ${PACKAGE_VERSION}"
-
-# Get the Sonar properties file
-SONAR_FILE=$(find . -iname sonar*.properties -type f)
-echo "Sonar file: ${SONAR_FILE}"
-
-SED_EXTRA_OPTS="-i.bak"
-
-# Update the version
-REPLACE='^sonar.projectVersion=.*$'
-WITH="sonar.projectVersion=${PACKAGE_VERSION}"
-sed $SED_EXTRA_OPTS -e "s/${REPLACE}/${WITH}/g" ${SONAR_FILE}
-
-# Update the project name
-REPLACE='^sonar.projectName=.*$'
-WITH="sonar.projectName=${PACKAGE_NAME}"
-sed $SED_EXTRA_OPTS -e "s/${REPLACE}/${WITH}/g" ${SONAR_FILE}