Skip to content
Open
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2b74bee
Added Code-Quality-check github action
vinodbhorge Jun 5, 2025
f63fca2
Added the project_key and org key in the variables
vinodbhorge Jun 5, 2025
2fb77e1
#SBCOSS-449 feat: adding github action to run test cases and code qua…
vinodbhorge Jun 5, 2025
63cb2bb
#SBCOSS-449 feat: adding github action to run test cases and code qua…
vinodbhorge Jun 5, 2025
e83a6a4
#SBCOSS-449 feat: adding github action to run test cases and code qua…
vinodbhorge Jun 5, 2025
b4ba299
Added a echo statement in between the build and test.
vinodbhorge Jun 5, 2025
0a275ba
Added echo to display the var values.
vinodbhorge Jun 5, 2025
1f9ffb8
Updated the workflow to take directly from repo variables
vinodbhorge Jun 5, 2025
387e630
Updated Code-Quality-check.yml
vinodbhorge Jun 6, 2025
6652891
Updated the sonar analysis to take maven cache.
vinodbhorge Jun 6, 2025
be5b78c
Updated the jdk version to 17 in sanar analysis
vinodbhorge Jun 6, 2025
58b3a56
Updated the value for organisation key.
vinodbhorge Jun 6, 2025
ce72059
Updated the project key and org key
vinodbhorge Jun 6, 2025
b1c359e
Updated the sonar token
vinodbhorge Jun 6, 2025
f9761b4
updated the search sonar commad.
vinodbhorge Jun 6, 2025
da2ef79
update
vinodbhorge Jun 6, 2025
d8c0c09
Updated the path.
vinodbhorge Jun 6, 2025
68306ed
Updated the sonar command for search service.
vinodbhorge Jun 6, 2025
61a1383
Added analysis for taxonomy.
vinodbhorge Jun 6, 2025
11d6923
Updated the workflow with search clean verify added
vinodbhorge Jun 9, 2025
cdd46f4
Updated the sonar analysis into a test step
vinodbhorge Jun 9, 2025
0769e09
Updated the sonar analysis into a diff step
vinodbhorge Jun 9, 2025
b0ded7d
Updated the sonar analysis into a diff step
vinodbhorge Jun 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
267 changes: 267 additions & 0 deletions .github/workflows/Code-Quality-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
name: Pull Request Checks

on:
pull_request:
branches:
- '*'
permissions:
pull-requests: write
contents: read
issues: write
checks: write
statuses: write

env:
CLOUD_STORE_GROUP_ID: ${{ vars.CLOUD_STORE_GROUP_ID }}
CLOUD_STORE_ARTIFACT_ID: ${{ vars.CLOUD_STORE_ARTIFACT_ID }}
CLOUD_STORE_VERSION: ${{ vars.CLOUD_STORE_VERSION }}

jobs:
build:
runs-on: ubuntu-latest
outputs:
maven_cache_key: ${{ runner.os }}-maven-${{ steps.cache.outputs.cache-hit }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'

- name: Cache Maven packages
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-

- name: Build Knowledge Platform
run: |
mvn clean install -DskipTests=true \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION}

test-content:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'

- name: Run Content Service Tests
working-directory: content-api/content-service/
run: |
mvn clean test org.jacoco:jacoco-maven-plugin:0.8.8:prepare-agent test org.jacoco:jacoco-maven-plugin:0.8.8:report \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION}

- name: Upload Content Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: content-test-results
path: 'content-api/content-service/target/surefire-reports/*.xml'

- name: Publish Content Test Results
if: always()
uses: dorny/test-reporter@v1
with:
name: Content Test Results
path: content-api/content-service/target/surefire-reports/*.xml
reporter: java-junit
fail-on-error: true

test-taxonomy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'

- name: Run Taxonomy Tests
working-directory: taxonomy-api/taxonomy-service/
run: |
mvn clean test org.jacoco:jacoco-maven-plugin:0.8.8:prepare-agent test org.jacoco:jacoco-maven-plugin:0.8.8:report \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION}

- name: Upload Taxonomy Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: taxonomy-test-results
path: 'taxonomy-api/taxonomy-service/target/surefire-reports/*.xml'

- name: Publish Taxonomy Test Results
if: always()
uses: dorny/test-reporter@v1
with:
name: Taxonomy Test Results
path: taxonomy-api/taxonomy-service/target/surefire-reports/*.xml
reporter: java-junit
fail-on-error: true

test-search:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'

- name: Run Search Tests
working-directory: search-api/search-service/
run: |
mvn clean test org.jacoco:jacoco-maven-plugin:0.8.8:prepare-agent test org.jacoco:jacoco-maven-plugin:0.8.8:report \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION}

- name: Upload Search Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: search-test-results
path: 'search-api/search-service/target/surefire-reports/*.xml'

- name: Publish Search Test Results
if: always()
uses: dorny/test-reporter@v1
with:
name: Search Test Results
path: search-api/search-service/target/surefire-reports/*.xml
reporter: java-junit
fail-on-error: true

sonar-analysis-content:
needs: test-content
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run SonarCloud Analysis for Content
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
working-directory: content-api/content-service
run: |
mvn sonar:sonar \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION} \
-Dsonar.projectKey=Sunbird-Knowlg_knowledge-platform \
-Dsonar.organization=sunbird-knowlg-1 \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.coverage.jacoco.xmlReportPaths=content-api/content-service/target/site/jacoco/jacoco.xml

sonar-analysis-taxonomy:
needs: test-taxonomy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run SonarCloud Analysis for Taxonomy
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
working-directory: taxonomy-api/taxonomy-service
run: |
mvn sonar:sonar \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION} \
-Dsonar.projectKey=Sunbird-Knowlg_knowledge-platform \
-Dsonar.organization=sunbird-knowlg-1 \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.coverage.jacoco.xmlReportPaths=taxonomy-api/taxonomy-service/target/site/jacoco/jacoco.xml

sonar-analysis-search:
needs: test-search
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run SonarCloud Analysis for Search
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
working-directory: search-api/search-service
run: |
mvn clean compile \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION}

mvn sonar:sonar \
-DCLOUD_STORE_GROUP_ID=${CLOUD_STORE_GROUP_ID} \
-DCLOUD_STORE_ARTIFACT_ID=${CLOUD_STORE_ARTIFACT_ID} \
-DCLOUD_STORE_VERSION=${CLOUD_STORE_VERSION} \
-Dsonar.projectKey=Sunbird-Knowlg_knowledge-platform \
-Dsonar.organization=sunbird-knowlg-1 \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.java.binaries=target/classes \
-Dsonar.java.test.binaries=target/test-classes \
-Dsonar.coverage.jacoco.xmlReportPaths=search-api/search-service/target/site/jacoco/jacoco.xml

comment-pr:
needs: [sonar-analysis-content, sonar-analysis-taxonomy, sonar-analysis-search]
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Comment PR with SonarQube Results
uses: actions/github-script@v6
with:
script: |
const message = `### SonarCloud Analysis Results 🔍

#### Quality Gate Results for Services:
- [Content Service Analysis](https://sonarcloud.io/dashboard?id=Sunbird-Knowlg_knowledge-platform_content)
- [Taxonomy Service Analysis](https://sonarcloud.io/dashboard?id=Sunbird-Knowlg_knowledge-platform_taxonomy)
- [Search Service Analysis](https://sonarcloud.io/dashboard?id=Sunbird-Knowlg_knowledge-platform_search)

Please review the analysis results for each service. Ensure all quality gates are passing before merging.`;

github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: message
});