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