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: image: postgres:13.3 env: POSTGRES_DB: employee_db POSTGRES_USER: employee POSTGRES_PASSWORD: secret employee: image: berndheidemann/employee-management-service:1.1.3 # image: berndheidemann/employee-management-service_without_keycloak:1.1 env: spring.datasource.url: jdbc:postgresql://postgres-employee:5432/employee_db spring.datasource.username: employee spring.datasource.password: secret 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 install -g @angular/cli ng build --configuration=pipeline # Start Angular development server - name: Start Angular Development Server in Background run: ng serve --configuration=pipeline > 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