Skip to content

chore: Bump the minor-and-patch group with 17 updates #727

chore: Bump the minor-and-patch group with 17 updates

chore: Bump the minor-and-patch group with 17 updates #727

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
jobs:
changes:
name: Detect changes
runs-on: ubuntu-latest
timeout-minutes: 1
permissions:
pull-requests: read
outputs:
backend: ${{ steps.filter.outputs.backend }}
frontend: ${{ steps.filter.outputs.frontend }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
backend:
- 'src/backend/**'
- 'global.json'
frontend:
- 'src/frontend/**'
backend-build:
name: Backend build
needs: changes
if: needs.changes.outputs.backend == 'true'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
- uses: actions/cache@v5
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('src/backend/**/*.csproj', 'src/backend/Directory.Packages.props') }}
restore-keys: nuget-${{ runner.os }}-
- name: Restore
run: dotnet restore src/backend/MyProject.slnx
- name: Build
run: dotnet build src/backend/MyProject.slnx --no-restore -c Release
- name: Test
id: test
continue-on-error: true
run: >-
dotnet test src/backend/MyProject.slnx
--no-build -c Release
--collect:"XPlat Code Coverage"
--results-directory ./coverage
- name: Generate coverage report
if: always() && steps.test.outcome != 'skipped'
uses: danielpalme/ReportGenerator-GitHub-Action@v5
with:
reports: 'coverage/**/coverage.cobertura.xml'
targetdir: coverage-report
reporttypes: 'MarkdownSummaryGithub'
- name: Publish coverage summary
if: always() && steps.test.outcome != 'skipped'
run: cat coverage-report/SummaryGithub.md >> $GITHUB_STEP_SUMMARY
- name: Fail if tests failed
if: steps.test.outcome == 'failure'
run: exit 1
frontend-checks:
name: Frontend checks
needs: changes
if: needs.changes.outputs.frontend == 'true'
runs-on: ubuntu-latest
timeout-minutes: 10
defaults:
run:
working-directory: src/frontend
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
package_json_file: src/frontend/package.json
- uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
cache-dependency-path: src/frontend/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Load test environment
run: cp .env.test .env
- name: Generate paraglide messages
run: pnpm exec paraglide-js compile --project ./project.inlang --outdir ./src/lib/paraglide
- name: Lint
run: pnpm run lint
- name: Type check
run: pnpm run check
- name: Test
run: pnpm test
ci-passed:
name: CI passed
if: always()
needs: [backend-build, frontend-checks]
runs-on: ubuntu-latest
timeout-minutes: 1
steps:
- name: Verify upstream jobs
run: |
if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" || "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
echo "::error::One or more upstream jobs failed or were cancelled"
exit 1
fi
echo "All upstream jobs passed or were skipped"