0ffa032ade
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/7
75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
name: Tests
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
pull_request:
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
backend-test:
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Setup .NET
|
||
uses: actions/setup-dotnet@v4
|
||
with:
|
||
dotnet-version: '10.0.x'
|
||
|
||
- name: Install PostgreSQL
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y postgresql
|
||
sudo pg_ctlcluster 16 main start
|
||
sudo -u postgres psql -c "CREATE USER tnsu_approval_route WITH PASSWORD 'tnsu_approval_route' SUPERUSER;"
|
||
sudo -u postgres psql -c "CREATE DATABASE tnsu_approval_route OWNER tnsu_approval_route;"
|
||
|
||
- name: Restore
|
||
run: dotnet restore backend/Tnsu.ApprovalRoute.sln
|
||
|
||
- name: Build
|
||
run: dotnet build backend/Tnsu.ApprovalRoute.sln --no-restore -c Release
|
||
|
||
- name: Test
|
||
env:
|
||
TEST_POSTGRES_CONNECTION: "Host=localhost;Port=5432;Database=tnsu_approval_route;Username=tnsu_approval_route;Password=tnsu_approval_route"
|
||
run: dotnet test backend/Tnsu.ApprovalRoute.sln --no-build -c Release
|
||
|
||
frontend-test:
|
||
runs-on: ubuntu-latest
|
||
defaults:
|
||
run:
|
||
working-directory: frontend
|
||
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Set up Node.js 22
|
||
uses: actions/setup-node@v3
|
||
with:
|
||
node-version: '22'
|
||
cache: 'npm'
|
||
cache-dependency-path: frontend/package-lock.json
|
||
|
||
- name: Install dependencies
|
||
run: |
|
||
npm config set fetch-retries 5
|
||
npm config set fetch-retry-mintimeout 10000
|
||
npm config set fetch-retry-maxtimeout 120000
|
||
for i in 1 2 3; do
|
||
npm install --legacy-peer-deps && break
|
||
echo "Attempt $i failed, retrying in 20s..."
|
||
sleep 20
|
||
done
|
||
|
||
# heft test = build (typescript+sass+lint) и следом Jest — тот же смысл,
|
||
# что и npm run build, но без package-solution (упаковка .sppkg здесь не
|
||
# нужна, это часть deploy_frontend.yml, а не проверки на PR).
|
||
- name: Run frontend unit tests (Jest via heft)
|
||
run: npx heft test --clean
|