name: E2E Tests on: workflow_call: jobs: test: timeout-minutes: 60 runs-on: ubuntu-latest defaults: run: working-directory: ./tests/e2e steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: 'yarn' cache-dependency-path: ./tests/e2e/yarn.lock - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Retrieve Python package uses: actions/download-artifact@v4 with: name: backend-dist path: dist - name: Build Image uses: docker/build-push-action@v5 with: file: ./docker/Dockerfile context: . build-contexts: | packages=dist push: false load: true tags: mealie:e2e cache-from: type=gha cache-to: type=gha,mode=max - name: Deploy E2E Test Environment run: docker compose up -d working-directory: ./tests/e2e/docker - name: Install dependencies run: npm install -g yarn && yarn - name: Install Playwright Browsers run: yarn playwright install --with-deps - name: Check test environment run: docker ps - name: Run Playwright tests run: yarn playwright test - name: Destroy Test Environment if: always() run: docker compose down --volumes working-directory: ./tests/e2e/docker