ManageIQ/manageiq-ui-classic

View on GitHub
.github/workflows/cypress.yaml

Summary

Maintainability
Test Coverage
---
name: Cypress
on:
  workflow_dispatch:
  schedule:
  - cron: 0 0 * * 0
jobs:
  cypress:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby-version:
        - '3.0'
        node-version:
        - 18
        cypress-browser:
        - chrome
        - firefox
        - edge
    services:
      postgres:
        image: manageiq/postgresql:13
        env:
          POSTGRESQL_USER: root
          POSTGRESQL_PASSWORD: smartvm
          POSTGRESQL_DATABASE: vmdb_development
        options: "--health-cmd pg_isready --health-interval 2s --health-timeout 5s
          --health-retries 5"
        ports:
        - 5432:5432
      memcached:
        image: manageiq/memcached:1.5
        ports:
        - 11211:11211
    env:
      TEST_SUITE: spec:cypress
      CYPRESS_BROWSER: ${{ matrix.cypress-browser }}
      PGHOST: localhost
      PGPASSWORD: smartvm
    steps:
    - uses: actions/checkout@v4
    - name: Install Edge
      uses: browser-actions/setup-edge@v1
      if: ${{ matrix.cypress-browser == 'edge' }}
    - name: Set up system
      run: bin/before_install
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: "${{ matrix.ruby-version }}"
        bundler-cache: true
      timeout-minutes: 30
    - name: Set up Node
      uses: actions/setup-node@v4
      with:
        node-version: "${{ matrix.node-version }}"
        cache: yarn
    - name: Prepare tests
      run: bin/setup
      env: # We will be using the development database, so no need for the test database
        SKIP_TEST_RESET: "true"
        SKIP_DATABASE_RESET: "false"
    - name: Run tests
      run: bundle exec rake
    - name: Save artifacts
      uses: actions/upload-artifact@v3
      if: failure()
      with:
        name: cypress-${{ matrix.cypress-browser }}
        path: |
          cypress/screenshots/
          cypress/videos/
          spec/manageiq/log/