From 045b1a1ccd655c2b0f1b9538fe1abfde87bfbcc7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 26 Oct 2022 21:17:16 +0200 Subject: [PATCH] Use @release-it/bumper to handle version in sonar-project.properties MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .release-it.json | 6 +-- package-lock.json | 97 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- updateSonarProps.sh | 49 ----------------------- 4 files changed, 101 insertions(+), 53 deletions(-) delete mode 100755 updateSonarProps.sh diff --git a/.release-it.json b/.release-it.json index 74398d62..2ce404db 100644 --- a/.release-it.json +++ b/.release-it.json @@ -12,10 +12,10 @@ "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 diff --git a/package-lock.json b/package-lock.json index a3613484..46b1934d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", @@ -681,6 +682,38 @@ "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", @@ -2528,6 +2561,15 @@ "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", @@ -5788,6 +5830,12 @@ "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", @@ -5824,6 +5872,12 @@ "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", @@ -10087,6 +10141,31 @@ "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", @@ -11399,6 +11478,12 @@ "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", @@ -13739,6 +13824,12 @@ "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", @@ -13775,6 +13866,12 @@ "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", diff --git a/package.json b/package.json index e10aa03c..1ccd21e0 100644 --- a/package.json +++ b/package.json @@ -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 index d29ed6ab..00000000 --- a/updateSonarProps.sh +++ /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 -#modified by : Daniel Duarte -#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} -- 2.34.1