111 lines
4.0 KiB
YAML
111 lines
4.0 KiB
YAML
name: PR Checks
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
jobs:
|
|
# EN: Node.js frontend/packages checks
|
|
# VI: Kiem tra frontend/packages Node.js
|
|
node-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup PNPM
|
|
uses: pnpm/action-setup@v2
|
|
with:
|
|
version: 8
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '25'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build shared packages
|
|
run: pnpm --filter './packages/*' build
|
|
|
|
- name: Lint all
|
|
run: pnpm lint
|
|
|
|
- name: Type check all
|
|
run: pnpm typecheck
|
|
|
|
- name: Build all
|
|
run: pnpm build
|
|
|
|
# EN: .NET microservices build check (matrix across all services)
|
|
# VI: Kiem tra build .NET microservices (matrix qua tat ca services)
|
|
dotnet-check:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
service:
|
|
- name: iam-service-net
|
|
project: IamService.API/IamService.API.csproj
|
|
- name: merchant-service-net
|
|
project: MerchantService.API/MerchantService.API.csproj
|
|
- name: order-service-net
|
|
project: OrderService.API/OrderService.API.csproj
|
|
- name: catalog-service-net
|
|
project: CatalogService.API/CatalogService.API.csproj
|
|
- name: inventory-service-net
|
|
project: InventoryService.API/InventoryService.API.csproj
|
|
- name: wallet-service-net
|
|
project: WalletService.API/WalletService.API.csproj
|
|
- name: fnb-engine-net
|
|
project: FnbEngine.API/FnbEngine.API.csproj
|
|
- name: booking-service-net
|
|
project: BookingService.API/BookingService.API.csproj
|
|
- name: membership-service-net
|
|
project: MembershipService.API/MembershipService.API.csproj
|
|
- name: chat-service-net
|
|
project: ChatService.API/ChatService.API.csproj
|
|
- name: social-service-net
|
|
project: SocialService.API/SocialService.API.csproj
|
|
- name: storage-service-net
|
|
project: StorageService.API/StorageService.API.csproj
|
|
- name: mining-service-net
|
|
project: MiningService.API/MiningService.API.csproj
|
|
- name: mission-service-net
|
|
project: MissionService.API/MissionService.API.csproj
|
|
- name: promotion-service-net
|
|
project: PromotionService.API/PromotionService.API.csproj
|
|
- name: ads-manager-service-net
|
|
project: AdsManagerService.API/AdsManagerService.API.csproj
|
|
- name: ads-serving-service-net
|
|
project: AdsServingService.API/AdsServingService.API.csproj
|
|
- name: ads-billing-service-net
|
|
project: AdsBillingService.API/AdsBillingService.API.csproj
|
|
- name: ads-tracking-service-net
|
|
project: AdsTrackingService.API/AdsTrackingService.API.csproj
|
|
- name: ads-analytics-service-net
|
|
project: AdsAnalyticsService.API/AdsAnalyticsService.API.csproj
|
|
- name: mkt-facebook-service-net
|
|
project: MktFacebookService.API/MktFacebookService.API.csproj
|
|
- name: mkt-whatsapp-service-net
|
|
project: MktWhatsappService.API/MktWhatsappService.API.csproj
|
|
- name: mkt-x-service-net
|
|
project: MktXService.API/MktXService.API.csproj
|
|
- name: mkt-zalo-service-net
|
|
project: MktZaloService.API/MktZaloService.API.csproj
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v4
|
|
with:
|
|
dotnet-version: '10.0.x'
|
|
|
|
- name: Restore ${{ matrix.service.name }}
|
|
run: dotnet restore services/${{ matrix.service.name }}/src/${{ matrix.service.project }}
|
|
|
|
- name: Build ${{ matrix.service.name }}
|
|
run: dotnet build services/${{ matrix.service.name }}/src/${{ matrix.service.project }} --configuration Release --no-restore
|