diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index a83c3ee2f7..72a1251e2f 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -83,3 +83,79 @@ jobs: path: | ./packages/e2e-tests/mochawesome-report ./packages/e2e-tests/testRunsData_${{ matrix.browser }} + + E2E_dapp_tests: + if: github.event.review && (github.event.review.state == 'approved' || contains(github.event.review.body, '/check') || contains(github.event.review.body, '/dapp-check')) + runs-on: macos-14 + strategy: + matrix: + browser: ['chrome'] + fail-fast: false + + steps: + - uses: actions/checkout@v4 + + - name: distutils hack + run: brew install python-setuptools + + - name: Forcefully update the Chrome browser + if: matrix.browser=='chrome' + run: brew update && brew upgrade --cask google-chrome + + - name: Forcefully install Firefox for Developers browser + if: matrix.browser=='firefox' + run: | + brew update + brew tap homebrew/cask-versions && brew install --cask firefox-developer-edition + echo "FIREFOX_BIN=/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox-bin" >> $GITHUB_ENV + + - name: Read .nvmrc + id: nvm + run: echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_OUTPUT + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: '${{ steps.nvm.outputs.NVMRC }}' + + - name: Cache extension node modules + # https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows + uses: actions/cache@v4 + env: + cache-name: cache-yoroi-extension-node-modules + with: + # https://github.com/actions/cache/blob/main/examples.md#node---npm + # It is recommended to cache the NPM cache (~/.npm) instead of node_modules. + # But we put node version into the cache key and cache node_modules. + path: packages/yoroi-extension/node_modules + key: ${{ runner.os }}-build-${{ env.cache-name }}-node-${{ steps.nvm.outputs.NVMRC }}-${{ hashFiles('packages/yoroi-extension/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: npm install + run: | + . install-all.sh + + - name: Build the test mainnet version + working-directory: ./packages/yoroi-extension + run: npm run test:build:mainnet + + - name: Run tests + working-directory: ./packages/e2e-tests + env: + FIRST_SMOKE_TEST_WALLET: ${{ secrets.FIRST_SMOKE_TEST_WALLET }} + SECOND_STATIC_TEST_WALLET: ${{ secrets.SECOND_STATIC_TEST_WALLET }} + SECOND_SMOKE_TEST_WALLET: ${{ secrets.SECOND_SMOKE_TEST_WALLET }} + SECOND_SMOKE_TEST_WALLET_FF: ${{ secrets.SECOND_SMOKE_TEST_WALLET_FF }} + run: npm run test:${{ matrix.browser }}:dapp + + - name: Archive tests screenshots and logs + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: testRunsData_E2E_tests_${{ matrix.browser }} + path: | + ./packages/e2e-tests/mochawesome-report + ./packages/e2e-tests/testRunsData_${{ matrix.browser }} \ No newline at end of file