name: Tests on: push: branches: - main - master pull_request: workflow_dispatch: jobs: 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 systemctl start postgresql 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: Wait for Postgres run: | for i in $(seq 1 30); do if pg_isready -h localhost -p 5432 -U tnsu_approval_route -d tnsu_approval_route; then echo "Postgres is ready" exit 0 fi echo "Waiting for postgres... ($i/30)" sleep 2 done echo "Postgres did not become ready in time" >&2 exit 1 - 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