diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 63a7ce60..8e283b5a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -152,3 +152,97 @@ jobs: with: name: meteor-admin-sdk--playwright-test-results path: packages/admin-sdk/playwright-report/ + + ats: + name: Acceptance tests + timeout-minutes: 20 + runs-on: ubuntu-latest + needs: + - circular-dependencies + - unit-tests + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + TZ: Europe/Berlin + strategy: + fail-fast: false + matrix: + shopware-version: + - v6.6.6.1 + - trunk + steps: + - name: Setup shopware + uses: shopware/setup-shopware@main + with: + path: shopware/ + install: "true" + installAdmin: "true" + installStorefront: "true" + shopware-version: "${{ matrix.shopware-version }}" + env: prod + + - name: Checkout + uses: actions/checkout@v4 + with: + path: meteor/ + + - name: Symlink plugin + working-directory: shopware/custom/plugins/ + run: ln -s ../../../meteor/examples/TestPlugin + + - name: Activate TestPlugin + working-directory: shopware/ + run: | + bin/console plugin:refresh + bin/console plugin:install --activate TestPlugin + + - uses: pnpm/action-setup@v3 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + cache-dependency-path: "**/pnpm-lock.yaml" + + - name: Install dependencies + working-directory: meteor/ + run: pnpm install --frozen-lockfile --prefer-offline + + - name: Build packages + working-directory: meteor/ + run: npx turbo run build + + - name: Build assets + working-directory: shopware/ + run: | + composer run build:js + bin/console assets:install + + - name: Start webserver + working-directory: shopware/ + run: symfony server:start --allow-http --no-tls --port=8000 -d + + - name: Install playwright + working-directory: meteor/examples/TestPlugin/tests/acceptance/ + run: | + pnpm install --frozen-lockfile --prefer-offline + npx playwright install --with-deps + + - name: Run Playwrigth + working-directory: meteor/examples/TestPlugin/tests/acceptance/ + run: npx playwright test --reporter=github --trace=on-first-retry --project chromium + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: ats-test-results-${{ matrix.project }} + path: meteor/examples/TestPlugin/tests/acceptance/test-results/ + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: ats-report-${{ matrix.project }} + path: meteor/examples/TestPlugin/tests/acceptance/playwright-report/