Skip to content

E2E tests account #2046

E2E tests account

E2E tests account #2046

Workflow file for this run

name: E2E tests account
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
schedule:
- cron: '* */12 * * *'
workflow_dispatch:
workflow_call:
env:
BLOCKSCOUT_URL: ${{ secrets.E2E_BLOCKSCOUT_URL }}
FRONTEND_URL: ${{ secrets.E2E_FRONTEND_URL }}
NETWORK_URL: ${{ secrets.E2E_NETWORK_URL }}
ACCOUNT_USERNAME: ${{ secrets.ACCOUNT_USERNAME }}
ACCOUNT_PASSWORD: ${{ secrets.ACCOUNT_PASSWORD }}
MAILSLURP_API_KEY: ${{ secrets.MAILSLURP_API_KEY }}
MAILSLURP_EMAIL_ID: ${{ secrets.MAILSLURP_EMAIL_ID }}
ENV: test
RESOURCE_MODE: account
PUBLIC: false
PORT: 4000
PORT_PG: 5432
PORT_NETWORK_HTTP: 8545
PORT_NETWORK_WS: 8546
WALLET: ${{ secrets.WALLET }}
PWDEBUG: 0
LOAD_AUTH_CTX: 1
LOAD_CONTRACTS_DATA: 0
ACCOUNT: 1
jobs:
e2e_tests:
name: Tests
permissions:
id-token: write
contents: read
runs-on: ubuntu-20.04
environment:
name: Tests
steps:
- name: checkout
uses: actions/checkout@v2
with:
repository: blockscout/blockscout-ci-cd
path: blockscout-ci-cd
- name: Inject slug/short variables
uses: rlespinasse/github-slug-action@v4
- name: Set environment variables
run: |
env_vars=${{ inputs.env_vars }}
for i in ${env_vars//,/ }
do
echo "$i" >> $GITHUB_ENV
echo "${{ inputs.appNamespace }}.${{ env.K8S_DOMAIN }}"
done
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: v14.17.0
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install deps
working-directory: blockscout-ci-cd/tests/e2e
run: npm ci
- name: Lint
working-directory: blockscout-ci-cd/tests/e2e
run: npm run lint
- name: Build contracts
working-directory: blockscout-ci-cd/tests/contracts
run: |
# gyp build from root
npm config set user 0
npm ci
npm run build
- name: Cache Playwright browsers
id: playwright-cache
uses: actions/cache@v3
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-playwright-
- name: Install Playwright Browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install --with-deps
# check if instance is ready
- name: Check the deployed service URL
uses: jtalk/url-health-check-action@v2
with:
# Check the following URLs one by one sequentially
url: ${{ env.FRONTEND_URL }}|${{ env.NETWORK_URL }}|${{ env.BLOCKSCOUT_URL }}
#
# Follow redirects, or just report success on 3xx status codes
follow-redirect: false # Optional, defaults to "false"
# Fail this action after this many failed attempts
max-attempts: 30 # Optional, defaults to 1
# Delay between retries
retry-delay: 10s # Optional, only applicable to max-attempts > 1
# Retry all errors, including 404. This option might trigger curl upgrade.
retry-all: true # Optional, defaults to "false"
- name: Run playwright smoke suite
working-directory: blockscout-ci-cd/tests/e2e
run: |
npx playwright install
npm run test:smoke:account
- uses: actions/upload-artifact@v3
if: always()
with:
name: report
path: blockscout-ci-cd/tests/e2e/html-report/index.html
- uses: actions/upload-artifact@v3
if: always()
with:
name: tests-results
path: blockscout-ci-cd/tests/e2e/test-results
- uses: actions/upload-artifact@v3
if: always()
with:
name: state
path: blockscout-ci-cd/tests/e2e/state.json
defaults:
run:
shell: bash