name: Playwright Tests on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: test: timeout-minutes: 60 runs-on: ubuntu-latest services: postgres-employee: container_name: postgres_employee image: postgres:13.3 env: POSTGRES_DB: employee_db POSTGRES_USER: employee POSTGRES_PASSWORD: secret ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U employee"] interval: 10s timeout: 5s retries: 5 employee: container_name: employee image: berndheidemann/employee-management-service:1.1.3 env: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres-employee:5432/employee_db SPRING_DATASOURCE_USERNAME: employee SPRING_DATASOURCE_PASSWORD: secret ports: - "8089:8089" depends_on: postgres-employee: condition: service_healthy steps: # Checkout the repository - uses: actions/checkout@v4 # Set up Node.js - uses: actions/setup-node@v4 with: node-version: lts/* # Install project dependencies - name: Install dependencies run: npm ci # Build the Angular project - name: Build Angular Project run: npm run build # Start Angular development server - name: Start Angular Development Server in Background run: nohup npm start > angular.log 2>&1 & env: PORT: 4200 # Ensure the server runs on a predictable port # Install Playwright and dependencies - name: Install Playwright Browsers run: npx playwright install --with-deps # Run Playwright tests - name: Run Playwright Tests run: npx playwright test env: CI: true # Ensures Playwright runs in CI mode # Upload Playwright report - uses: actions/upload-artifact@v3 if: ${{ !cancelled() }} with: name: playwright-report path: playwright-report/ retention-days: 30