From 50bd2514f78d303fe596ec24220d0634c50c9f3d Mon Sep 17 00:00:00 2001 From: guesung Date: Fri, 27 Sep 2024 11:27:25 +0900 Subject: [PATCH] =?UTF-8?q?Feature:=20sonarqube=EB=A5=BC=20=EC=84=B8?= =?UTF-8?q?=ED=8C=85=ED=95=9C=EB=8B=A4=20(#46)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: sonarqube를 세팅한다 * feat: sonarqube 스크립트를 추가한다 * refactor: 사용하지 않는 스크립트를 제거한다 * docs: 오타 제거 및 미사용 파일을 제거한다 * chore: sonarqube관련 스크립트를 추가한다 * doccs: sonar qube문서를 업데이트한다 * refactor: `settings.json`을 제거한다 * docs: Sonarqube README를 업데이트한다 --- package.json | 4 +++- scripts/README.md | 20 ++++++++++++++++++++ scripts/run-sonarqube.sh | 1 + scripts/run-sonarscanner.sh | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 scripts/README.md create mode 100755 scripts/run-sonarqube.sh create mode 100755 scripts/run-sonarscanner.sh diff --git a/package.json b/package.json index 4f26030c..872bb1c2 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,9 @@ "update-version": "run-script-os", "update-version:win32": "bash update_version.sh", "update-version:default": "./update_version.sh", - "package": "pnpm i && pnpm clean && pnpm build && pnpm zip" + "package": "pnpm i && pnpm clean && pnpm build && pnpm zip", + "sonarqube": "./scripts/run-sonarqube.sh", + "sonarqube-scan": "./scripts/run-sonarscanner.sh" }, "files": [ "dist" diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 00000000..13860f24 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,20 @@ +# Sonarqube +## 1. Sonarqube 설치 및 실행 +1. [SonarQube Developer Edition](https://www.sonarsource.com/products/sonarqube/downloads/success-download-developer-edition/)으로 설치하면 됩니다. +2. `$ pnpm run sonarqube` + - 만약 권한 오류가 뜬다면, `$chmod 755 *.sh`로 모든 shell파일에 대해 권한을 열어주세요. + - 실행이 완료되면, `localhost:9000`으로 접속할 수 있습니다. + +## 2. Sonarqube 프로젝트 생성 +1. 프로젝트명은 `web-memo`이며, local에서 사용할 수 있도록 프로젝트를 생성합니다. +2. 생성된 프로젝트의 토큰을 복사합니다.(3번에서 사용합니다) + +## 2. Sonarqube scanner 실행을 위한 전역 변수 설정 +1. `$ vi /etc/profile` +2. 마지막 줄에 `export SONAR_TOKEN=2번에서 복사한토큰` 입력 + - `:wq!`로 덮어쓰기를 해야 저장이 됩니다. +3. `$ source /etc/profile` + +## 3. Sonarqube Scanner 실행 +1. `$ pnpm run sonarqube-scan` + - 만약 에러가 난다면, sonarqube를 정상적으로 실행했고, 로그인을 했고, 프로젝트 등록을 했는지 확인해주세요. \ No newline at end of file diff --git a/scripts/run-sonarqube.sh b/scripts/run-sonarqube.sh new file mode 100755 index 00000000..8a89af00 --- /dev/null +++ b/scripts/run-sonarqube.sh @@ -0,0 +1 @@ +docker run -d -p 9000:9000 sonarqube \ No newline at end of file diff --git a/scripts/run-sonarscanner.sh b/scripts/run-sonarscanner.sh new file mode 100755 index 00000000..cb349c47 --- /dev/null +++ b/scripts/run-sonarscanner.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +token=$SONAR_TOKEN +url="http://localhost:9000" +project="web-memo" + +docker run \ + --rm \ + --net host \ + -e SONAR_HOST_URL=$url \ + -v ${PWD}:/usr/src \ + sonarsource/sonar-scanner-cli \ + --debug \ + -Dsonar.projectKey=$project \ + -Dsonar.sonar.sourceEncoding=UTF-8 \ + -Dsonar.sonar.host.url=$url \ + -Dsonar.sources=/usr/src \ + -Dsonar.login=$token \ No newline at end of file