diff --git a/.github/workflows/test_e2e.yml b/.github/workflows/test_e2e.yml index f9bcc03c7..7d2ccaa92 100644 --- a/.github/workflows/test_e2e.yml +++ b/.github/workflows/test_e2e.yml @@ -176,3 +176,80 @@ jobs: run: | cd e2e-tests/playwright/typescript bun run test + + end-to-end-tests-playwright-java: + name: End-to-End Tests Playwright java + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set Node.js version + uses: actions/setup-node@v4 + with: + node-version: '18.20.7' + + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: install bun + uses: oven-sh/setup-bun@v2 + + - name: Boot up test system | docker-compose mariadb mailserver + run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb mailserver + + - name: Prepare test system + run: | + sudo chown runner:docker -R * + bun install + sudo cp ./nginx/e2e-test.conf /etc/nginx/sites-available/default + + - name: Boot up test system | seed backend + run: bun turbo seed + + - name: Moving logs after seeding + run: | + mkdir -p /home/runner/work/gradido/gradido/logs/backend/seed + mv /home/runner/work/gradido/gradido/logs/backend/*.log /home/runner/work/gradido/gradido/logs/backend/seed/ + + - name: Boot up test system | docker-compose backend, frontend + run: | + cd backend + cp .env.test_e2e .env + cd .. + bun turbo backend#build + bun turbo frontend#build + bun turbo backend#start frontend#start --env-mode=loose & + + - name: End-to-end tests | prepare + run: | + cd e2e-tests/playwright/typescript + bun install + + - name: Install Playwright Browsers + run: npx playwright install --with-deps + + - name: wait for frontend and backend to be ready + run: | + until nc -z 127.0.0.1 3000; do echo waiting for frontend; sleep 1; done; + until nc -z 127.0.0.1 4000; do echo waiting for backend; sleep 1; done; + + - name: Start local nginx webserver + run: | + sudo nginx -t + sudo systemctl start nginx + + - name: wait for nginx and mailserver to be ready + run: | + until nc -z 127.0.0.1 80; do echo waiting for nginx; sleep 1; done; + until nc -z 127.0.0.1 1025; do echo waiting for mailserver; sleep 1; done; + + - name: End-to-end tests | run tests + id: e2e-tests + run: | + cd e2e-tests/playwright/java + mvn -B install -D skipTests --no-transfer-progress + mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install --with-deps" + mvn test \ No newline at end of file