Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
6394e0b
ci(ci): add gitleaks, sonarcloud, snyk security scan workflows
LCHLong Apr 5, 2026
f9d2036
ci(ci): fix snyk scan - add --no-monitor flag and limit to maven only
LCHLong Apr 5, 2026
e24002c
ci(ci): fix snyk - replace docker action with cli to resolve JAVA_HOM…
LCHLong Apr 5, 2026
5b69f48
ci(ci): fix snyk - disable analytics to resolve 403, add continue-on-…
LCHLong Apr 5, 2026
9eba2e1
ci(ci): trigger sonarcloud on every push instead of path filter
LCHLong Apr 5, 2026
4f5c526
ci(ci): fix snyk exit code handling - only fail on real errors not on…
LCHLong Apr 5, 2026
74cb956
ci(ci): simplify snyk exit handling - use || true for free tier 403 l…
LCHLong Apr 5, 2026
86075eb
ci(ci): fix sonarcloud - override org and project key with github sec…
LCHLong Apr 5, 2026
6e83014
ci(ci): fix sonar yaml multiline command syntax with | and backslash
LCHLong Apr 5, 2026
ce80744
ci(ci): add -e flag to sonar maven command for debug output
LCHLong Apr 5, 2026
e578c8d
ci(ci): add echo debug to verify sonar secrets are passed correctly
LCHLong Apr 5, 2026
d2e93af
ci(media): add Jenkinsfile for multibranch pipeline
vctchinh Apr 9, 2026
f4c42d9
ci(product): add Jenkinsfile for multibranch pipeline
vctchinh Apr 9, 2026
b87a1be
feat: add project conventions and initialize CI workflows for microse…
hungvu09122005 Apr 20, 2026
9540535
feat: add CI/CD workflows for cart, inventory, and order services
hungvu09122005 Apr 20, 2026
4067b6d
feat: add CI/CD pipeline workflows for cart, inventory, order, and ba…
hungvu09122005 Apr 20, 2026
6bb33dc
feat: add AbstractCircuitBreakFallbackHandler and project convention …
hungvu09122005 Apr 20, 2026
127625f
docs: add project conventions and circuit breaker fallback handler ba…
hungvu09122005 Apr 20, 2026
7fe23da
ci: setup github actions workflow for media service
vctchinh Apr 20, 2026
25ea002
ci(media): fix dependency issue by installing common-library in CI
vctchinh Apr 20, 2026
ce33e37
ci(media): use project-list and also-make flags to resolve parent pom
vctchinh Apr 20, 2026
ad79502
ci(media): remove redundant jacoco check step
vctchinh Apr 20, 2026
6cc54ef
ci(product): setup github actions workflow for media service
vctchinh Apr 20, 2026
7484bf9
Merge branch 'ci/product-pipeline' of https://github.com/hungvu091220…
vctchinh Apr 20, 2026
2e79762
ci(search): setup workflow with reactor build and fix dependencies
vctchinh Apr 20, 2026
e6bc214
ci(storefront-bff): standardize workflow and fix reactor build
vctchinh Apr 20, 2026
e092e65
ci(ci): use official gitleaks-action v2 in gitleaks-check workflow
LCHLong Apr 20, 2026
318761c
ci(payment): setup CI pipeline for payment service
LCHLong Apr 20, 2026
9e30a81
ci(payment-paypal): setup CI pipeline for payment-paypal service
LCHLong Apr 20, 2026
22c7fde
ci(promotion): setup CI pipeline for promotion service
LCHLong Apr 20, 2026
7e6960c
ci(webhook): setup CI pipeline for webhook service
LCHLong Apr 20, 2026
9b1d7d7
ci(storefront): setup CI pipeline for storefront service
LCHLong Apr 20, 2026
2be5312
ci(backoffice): setup CI pipeline for backoffice service
LCHLong Apr 20, 2026
5fa3e8f
ci(payment): fix trigger to run on all branches
LCHLong Apr 20, 2026
b71e0f6
ci(payment-paypal): fix branch trigger to enable feature branch testing
LCHLong Apr 20, 2026
371c91a
ci(promotion): fix branch trigger to enable feature branch testing
LCHLong Apr 20, 2026
f3b9652
ci(webhook): fix branch trigger to enable feature branch testing
LCHLong Apr 20, 2026
6782c79
ci(storefront): fix branch trigger to enable feature branch testing
LCHLong Apr 20, 2026
d0f5ce1
ci(backoffice): fix branch trigger to enable feature branch testing
LCHLong Apr 20, 2026
e0c516a
ci(storefront): trigger CI pipeline run
LCHLong Apr 20, 2026
bb27cad
ci(backoffice): trigger CI pipeline run
LCHLong Apr 20, 2026
852b9b8
feat: establish project conventions and implement CI workflows for ba…
hungvu09122005 Apr 22, 2026
a6d9595
feat: add CI/CD pipeline workflows for backoffice-bff, cart, inventor…
hungvu09122005 Apr 22, 2026
5b9f7aa
ci: update payment workflow
LCHLong Apr 22, 2026
0edf943
ci: update payment-paypal workflow
LCHLong Apr 22, 2026
94c8d84
ci: update promotion workflow
LCHLong Apr 22, 2026
9cf6cd7
ci: update webhook workflow
LCHLong Apr 22, 2026
83eb1c8
ci: update storefront workflow
LCHLong Apr 22, 2026
a7771d9
ci: update backoffice workflow
LCHLong Apr 22, 2026
3c97e3d
ci: update payment workflow to match template
LCHLong Apr 22, 2026
2799b89
ci: update payment-paypal workflow to match template
LCHLong Apr 22, 2026
650b15f
ci: update promotion workflow to match template
LCHLong Apr 22, 2026
094b877
ci: update webhook workflow to match template
LCHLong Apr 22, 2026
3de4c0f
ci: update storefront workflow to match template structure
LCHLong Apr 22, 2026
dae9eaa
ci: update backoffice workflow to match template structure
LCHLong Apr 22, 2026
fa960eb
ci(customer): config pipeline for customer service
ninhbilly123 Apr 22, 2026
7e4143a
ci(rating): config pipeline for rating service
ninhbilly123 Apr 22, 2026
28f60c5
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
ad69241
ci(location): config pipeline for location service
ninhbilly123 Apr 22, 2026
9f096f7
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
5173f4d
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
49edd15
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
cb6fa75
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
7f16af2
ci: fix jacoco check execution in parent pom
LCHLong Apr 22, 2026
b0894be
ci(tax): config pipeline for tax service
ninhbilly123 Apr 22, 2026
c2b4073
ci: fix trivy action version
LCHLong Apr 22, 2026
67765dd
ci: fix pipeline by removing unsupported jacoco rule check
ninhbilly123 Apr 22, 2026
d712a13
ci: fix pipeline by removing unsupported jacoco rule check
ninhbilly123 Apr 22, 2026
8c77a45
ci: fix pipeline by removing unsupported jacoco rule check
ninhbilly123 Apr 22, 2026
2d9ba71
ci: fix pipeline by removing unsupported jacoco rule check
ninhbilly123 Apr 22, 2026
bf950e0
ci: update backoffice workflow with safe trivy version
LCHLong Apr 22, 2026
8601e79
ci: fix trivy upload condition to avoid path not exist error
LCHLong Apr 22, 2026
84a5a5d
ci(customer): align workflow with phase 2 template
ninhbilly123 Apr 22, 2026
fde697b
ci(location): align workflow with phase 2 template
ninhbilly123 Apr 22, 2026
220e595
ci(rating): align workflow with phase 2 template
ninhbilly123 Apr 22, 2026
dcb32e6
ci(tax): align workflow with phase 2 template
ninhbilly123 Apr 22, 2026
547aed4
ci(customer): fix docker image tag
ninhbilly123 Apr 22, 2026
2bc9a90
ci(location): fix docker image tag
ninhbilly123 Apr 22, 2026
b517bc0
ci(rating): fix docker image tag
ninhbilly123 Apr 22, 2026
09700fb
ci(tax): fix docker image tag
ninhbilly123 Apr 22, 2026
7b8b10c
ci: apply correct template to customer pipeline
ninhbilly123 Apr 22, 2026
2b1722e
ci: restore check coverage step to strictly match template
ninhbilly123 Apr 22, 2026
4f7d9d3
chore(tax): add jacoco check rules to pom.xml
ninhbilly123 Apr 22, 2026
56aa11a
chore(location): add jacoco check rules to pom.xml
ninhbilly123 Apr 22, 2026
7070a26
chore(customer): add jacoco check rules to pom.xml
ninhbilly123 Apr 22, 2026
a593319
chore(rating): add jacoco check rules to pom.xml
ninhbilly123 Apr 22, 2026
a217f71
Merge remote-tracking branch 'origin/ci/rating-pipeline' into ci/mvp_…
hungvu09122005 Apr 23, 2026
1363bd2
Merge remote-tracking branch 'origin/ci/customer-pipeline' into ci/mv…
hungvu09122005 Apr 23, 2026
7285478
Merge remote-tracking branch 'origin/ci/location-pipeline' into ci/mv…
hungvu09122005 Apr 23, 2026
2f51331
Merge remote-tracking branch 'origin/ci/tax-pipeline' into ci/mvp_pip…
hungvu09122005 Apr 23, 2026
7d98295
Merge remote-tracking branch 'origin/ci/backoffice-pipeline' into ci/…
hungvu09122005 Apr 23, 2026
c92f441
Merge remote-tracking branch 'origin/ci/storefront-pipeline' into ci/…
hungvu09122005 Apr 23, 2026
3c3ac20
Merge remote-tracking branch 'origin/ci/webhook-pipeline' into ci/mvp…
hungvu09122005 Apr 23, 2026
262eac4
Merge remote-tracking branch 'origin/ci/payment-paypal-pipeline' into…
hungvu09122005 Apr 23, 2026
31b2711
Merge remote-tracking branch 'origin/ci/payment-pipeline' into ci/mvp…
hungvu09122005 Apr 23, 2026
9648e19
Merge remote-tracking branch 'origin/ci/promotion-pipeline' into ci/m…
hungvu09122005 Apr 23, 2026
82dc5fd
Merge remote-tracking branch 'origin/ci/storefront-bff-pipeline' into…
hungvu09122005 Apr 23, 2026
c9d178f
Merge remote-tracking branch 'origin/ci/search-pipeline' into ci/mvp_…
hungvu09122005 Apr 23, 2026
66e2829
Merge remote-tracking branch 'origin/ci/product-pipeline' into ci/mvp…
hungvu09122005 Apr 23, 2026
13db3b2
Merge branch 'ci/jacoco' into ci/mvp_pipeline
hungvu09122005 Apr 23, 2026
4d88d57
feat: initialize service-specific CI workflows and Maven configuratio…
hungvu09122005 Apr 23, 2026
15198c2
Merge remote-tracking branch 'origin/ci/setup-security-scan' into ci/…
hungvu09122005 Apr 23, 2026
37a70e5
feat: initialize project conventions and CI/CD workflows for all serv…
hungvu09122005 Apr 24, 2026
fd8ff0f
feat: initialize modular Maven service structure with standardized pr…
hungvu09122005 Apr 25, 2026
6b7d4e3
feat: media coverage
vctchinh Apr 27, 2026
1538b1f
Test comment
vctchinh Apr 27, 2026
01efde7
test(media): fix test and pom file
vctchinh Apr 27, 2026
f68990d
test(media): fix test and pom file 2
vctchinh Apr 27, 2026
6f95860
test(media): fix test and pom file 3
vctchinh Apr 27, 2026
2e2c626
Chore(media): delete comment
vctchinh Apr 27, 2026
c432ea5
test(media): add comment
vctchinh Apr 27, 2026
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
134 changes: 102 additions & 32 deletions .github/workflows/backoffice-bff-ci.yaml
Original file line number Diff line number Diff line change
@@ -1,73 +1,143 @@
name: backoffice-bff service ci
name: backoffice-bff-ci

on:
push:
branches: [ "main" ]
branches: ['**']
paths:
- "backoffice-bff/**"
- ".github/workflows/actions/action.yaml"
- ".github/workflows/backoffice-bff-ci.yaml"
- "pom.xml"
- 'backoffice-bff/**'
- '.github/workflows/actions/action.yaml'
- '.github/workflows/backoffice-bff-ci.yaml'
- 'pom.xml'
pull_request:
branches: [ "main" ]
branches: [main]
paths:
- "backoffice-bff/**"
- ".github/workflows/actions/action.yaml"
- ".github/workflows/backoffice-bff-ci.yaml"
- "pom.xml"
- 'backoffice-bff/**'
- '.github/workflows/actions/action.yaml'
- '.github/workflows/backoffice-bff-ci.yaml'
- 'pom.xml'
workflow_dispatch:

permissions:
contents: write
pull-requests: write
checks: write

jobs:
Build:
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 15
env:
FROM_ORIGINAL_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0
- uses: ./.github/workflows/actions

- name: Install common-library
run: mvn install -DskipTests -pl common-library

- name: Run tests with coverage
run: mvn test jacoco:report -f backoffice-bff

- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: backoffice-bff-test-report
path: backoffice-bff/target/surefire-reports/

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: backoffice-bff-coverage
path: backoffice-bff/target/site/jacoco/

- name: Check coverage threshold (>= 70%)
run: mvn jacoco:check@check -f backoffice-bff

- name: Add coverage report to PR
uses: madrapps/jacoco-report@v1.6.1
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' && github.event_name == 'pull_request' }}
with:
paths: ${{ github.workspace }}/backoffice-bff/target/site/jacoco/jacoco.xml
token: ${{ secrets.GITHUB_TOKEN }}
min-coverage-overall: 70
min-coverage-changed-files: 60
title: 'Backoffice-BFF Coverage Report'
update-comment: true

- name: Run Maven Checkstyle
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
run: mvn checkstyle:checkstyle -f backoffice-bff -Dcheckstyle.output.file=backoffice-bff-checkstyle-result.xml
- name: Upload Checkstyle Result

- name: Upload Checkstyle result
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
uses: jwgmeligmeyling/checkstyle-github-action@master
with:
path: '**/backoffice-bff-checkstyle-result.xml'
- name: Run Maven Verify
run: mvn clean verify -f backoffice-bff
- name: Analyze with sonar cloud

- name: Test Results
uses: dorny/test-reporter@v1
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' && (success() || failure()) }}
with:
name: Backoffice-BFF-Unit-Test-Results
path: 'backoffice-bff/**/*-reports/TEST*.xml'
reporter: java-junit

- name: Analyze with SonarCloud
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -f backoffice-bff
- name: OWASP Dependency Check
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
uses: dependency-check/Dependency-Check_Action@main
env:
JAVA_HOME: /opt/jdk
with:
project: 'yas'
path: '.'
format: 'HTML'
- name: Upload OWASP Dependency Check results
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
uses: actions/upload-artifact@master

build:
name: Build
needs: [test]
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
name: OWASP Dependency Check Report
path: ${{github.workspace}}/reports
fetch-depth: 0
- uses: ./.github/workflows/actions

- name: Build JAR
run: mvn package -DskipTests -f backoffice-bff

- name: Log in to the Container registry
if: ${{ github.ref == 'refs/heads/main' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker images

- name: Build and push Docker image
if: ${{ github.ref == 'refs/heads/main' }}
uses: docker/build-push-action@v6
with:
context: ./backoffice-bff
push: true
tags: ghcr.io/nashtech-garage/yas-backoffice-bff:latest

publish-coverage:
name: Publish coverage report
needs: [test]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Download coverage artifact
uses: actions/download-artifact@v4
with:
name: backoffice-bff-coverage
path: ./jacoco-report

- name: Deploy JaCoCo report to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./jacoco-report
destination_dir: backoffice-bff/coverage
keep_files: true
80 changes: 54 additions & 26 deletions .github/workflows/backoffice-ci.yaml
Original file line number Diff line number Diff line change
@@ -1,86 +1,114 @@
name: backoffice service ci
name: backoffice-ci

on:
push:
branches: [ "main" ]
branches: ['**']
paths:
- "backoffice/**"
- ".github/workflows/actions/action.yaml"
- ".github/workflows/backoffice-ci.yaml"
- 'backoffice/**'
- '.github/workflows/actions/action.yaml'
- '.github/workflows/backoffice-ci.yaml'
pull_request:
branches: [ "main" ]
branches: [main]
paths:
- "backoffice/**"
- ".github/workflows/actions/action.yaml"
- ".github/workflows/backoffice-ci.yaml"
- 'backoffice/**'
- '.github/workflows/actions/action.yaml'
- '.github/workflows/backoffice-ci.yaml'
workflow_dispatch:

permissions:
contents: write
pull-requests: write
checks: write

jobs:
Build:
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 15
env:
FROM_ORIGINAL_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci

- name: Install dependencies
run: npm ci
working-directory: backoffice
- run: npm run build

- name: Run Build (Checking for build errors)
run: npm run build
working-directory: backoffice
- run: npm run lint

- name: Run Lint
run: npm run lint
working-directory: backoffice
- run: npx prettier --check .

- name: Run Prettier check
run: npx prettier --check .
working-directory: backoffice
- run: npm audit --omit=dev

- name: Run npm audit
run: npm audit --omit=dev
continue-on-error: true
working-directory: backoffice
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.24.0
with:
scan-type: 'fs'
scan-ref: './backoffice'
format: 'sarif'
output: 'trivy-results.sarif'

- name: SonarCloud Scan
if: ${{ env.FROM_ORIGINAL_REPOSITORY == 'true' }}
uses: SonarSource/sonarcloud-github-action@master
with:
projectBaseDir: backoffice
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

build:
name: Build
needs: [test]
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Log in to the Container registry
if: ${{ github.ref == 'refs/heads/main' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Docker image
if: ${{ github.ref == 'refs/heads/main' }}
uses: docker/build-push-action@v6
with:
context: ./backoffice
tags: ghcr.io/nashtech-garage/yas-backoffice:latest
push: false # Build first to scan

- name: Run Trivy vulnerability scanner
if: ${{ github.ref == 'refs/heads/main' }}
uses: aquasecurity/trivy-action@0.24.0
uses: aquasecurity/trivy-action@v0.35.0
with:
image-ref: 'ghcr.io/nashtech-garage/yas-backoffice:latest'
format: 'sarif'
output: 'trivy-results.sarif'

- name: Push Docker image
if: ${{ github.ref == 'refs/heads/main' }}
uses: docker/build-push-action@v6
with:
push: true
context: ./backoffice
push: true
tags: ghcr.io/nashtech-garage/yas-backoffice:latest

- name: Upload Trivy scan results to GitHub Security tab
if: ${{ github.ref == 'refs/heads/main' }}
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'
Loading