Skip to content

Instantly share code, notes, and snippets.

@wenqiglantz
Created February 25, 2023 19:56
Show Gist options
  • Save wenqiglantz/4bb06630f9de4853feb178577d881dd2 to your computer and use it in GitHub Desktop.
Save wenqiglantz/4bb06630f9de4853feb178577d881dd2 to your computer and use it in GitHub Desktop.
- name: SonarQube Scan, create project in SonarQube if it doesn't exist already
if: inputs.sonar-scan-flag
env:
ADMIN_USERNAME: ${{ secrets.SONARQUBE_ADMIN_USERNAME }}
ADMIN_PASSWORD: ${{ secrets.SONARQUBE_ADMIN_PASSWORD }}
HOST_URL: ${{ secrets.SONARQUBE_HOST }}
PROJECT_KEY: ${{ inputs.sonar-project-name }}
TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
run: |
echo PROJECT_KEY is ${PROJECT_KEY}
PROJECTS=$(curl -u $ADMIN_USERNAME:$ADMIN_PASSWORD $HOST_URL/api/projects/search?q=$PROJECT_KEY | jq -r '.components[].key')
if echo "$PROJECTS" | grep -q "$PROJECT_KEY"; then
echo "Project $PROJECT_KEY already exists. Skipping creation. Proceed to scan."
else
curl -u $ADMIN_USERNAME:$ADMIN_PASSWORD \
-X POST \
"$HOST_URL/api/projects/create?name=$PROJECT_KEY&project=$PROJECT_KEY"
echo "Project $PROJECT_KEY created. Proceed to scan."
fi
# run maven sonar plugin to scan
mvn -B sonar:sonar \
-Dsonar.projectKey=$PROJECT_KEY \
-Dsonar.host.url=$HOST_URL \
-Dsonar.login=$TOKEN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment