Skip to content

deps(frontend): bump recharts from 2.15.4 to 3.8.0 in /frontend #158

deps(frontend): bump recharts from 2.15.4 to 3.8.0 in /frontend

deps(frontend): bump recharts from 2.15.4 to 3.8.0 in /frontend #158

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
jobs:
backend:
name: Backend Build & Test
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: backend/global.json
cache: true
cache-dependency-path: |
backend/**/*.csproj
backend/global.json
- name: Restore
run: dotnet restore RentACar.sln
- name: Build
run: dotnet build RentACar.sln --configuration Release --no-restore
- name: Detect test projects
id: test-projects
shell: bash
run: |
set -euo pipefail
count=$(find . -name "*Tests.csproj" | wc -l)
echo "count=$count" >> "$GITHUB_OUTPUT"
- name: Test
if: steps.test-projects.outputs.count != '0'
# Keep CI unit tests free of cold-start wall-clock assertions.
# Use warm-path averages or dedicated benchmarks for perf checks.
run: dotnet test RentACar.sln --configuration Release --no-build --collect:"XPlat Code Coverage" --results-directory ./coverage
- name: Generate Coverage Report
if: steps.test-projects.outputs.count != '0'
run: |
dotnet tool install --global dotnet-reportgenerator-globaltool --version 5.*
echo "$HOME/.dotnet/tools" >> "$GITHUB_PATH"
coverage_files=$(find ./coverage -name "coverage.cobertura.xml" | tr '\n' ',')
reportgenerator -reports:"${coverage_files%,}" -targetdir:./coverage-report -reporttypes:MarkdownSummaryGithub
echo "### Backend Coverage Report" >> "$GITHUB_STEP_SUMMARY"
cat ./coverage-report/SummaryGithub.md >> "$GITHUB_STEP_SUMMARY"
- name: Upload Backend Coverage
if: steps.test-projects.outputs.count != '0'
uses: actions/upload-artifact@v7
with:
name: backend-coverage
path: |
backend/coverage/
backend/coverage-report/
retention-days: 7
- name: No tests detected
if: steps.test-projects.outputs.count == '0'
run: echo "No *Tests.csproj projects found. Skipping test execution."
frontend:
name: Frontend Lint, Test & Build
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm tsc --noEmit
- name: Lint
run: pnpm lint
- name: Test
run: pnpm test:coverage
- name: Upload Frontend Coverage
uses: actions/upload-artifact@v7
with:
name: frontend-coverage
path: frontend/coverage/
retention-days: 7
- name: Build
run: pnpm build
docker-build:
name: Docker Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build API image
uses: docker/build-push-action@v6
with:
context: backend
file: backend/src/RentACar.API/Dockerfile
push: false
tags: rentacar-api:ci
- name: Build Worker image
uses: docker/build-push-action@v6
with:
context: backend
file: backend/src/RentACar.Worker/Dockerfile
push: false
tags: rentacar-worker:ci
docker-push:
name: Docker Push to GHCR
runs-on: ubuntu-latest
needs: [backend, frontend, docker-build]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Convert owner to lowercase
id: owner
shell: bash
env:
OWNER: ${{ github.repository_owner }}
run: |
echo "value=${OWNER,,}" >> "$GITHUB_OUTPUT"
- name: Log in to GHCR
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push API image
uses: docker/build-push-action@v6
with:
context: backend
file: backend/src/RentACar.API/Dockerfile
push: true
tags: |
ghcr.io/${{ steps.owner.outputs.value }}/rentacar-api:${{ github.sha }}
ghcr.io/${{ steps.owner.outputs.value }}/rentacar-api:latest
- name: Build and push Worker image
uses: docker/build-push-action@v6
with:
context: backend
file: backend/src/RentACar.Worker/Dockerfile
push: true
tags: |
ghcr.io/${{ steps.owner.outputs.value }}/rentacar-worker:${{ github.sha }}
ghcr.io/${{ steps.owner.outputs.value }}/rentacar-worker:latest