SU-SWS/stanford_profile

View on GitHub
.github/workflows/tests.yml

Summary

Maintainability
Test Coverage
name: PHPUnit and Acceptance Tests
on: [push]
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  phpunit:
    name: PHPUnit Coverage Tests
    runs-on: ubuntu-latest
    container:
      image: pookmish/drupal8ci:latest
    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_DATABASE: drupal
          MYSQL_USER: drupal
          MYSQL_PASSWORD: drupal
          MYSQL_ROOT_PASSWORD: drupal
        ports:
          - 33306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
    steps:
      - uses: actions/checkout@v4
        with:
          path: project
      - name: Build project
        env:
          CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
        run: |
          composer global require su-sws/stanford-caravan:10.x-dev
          ~/.config/composer/vendor/bin/sws-caravan phpunit /var/www/html --extension-dir=$GITHUB_WORKSPACE/project --with-coverage
      - name: Save Test Results
        uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: unit-tests-results
          path: /var/www/html/artifacts
  acceptance:
    name: Codeception Acceptance Tests
    runs-on: ubuntu-latest
    env:
      DRUPAL_DATABASE_NAME: drupal
      DRUPAL_DATABASE_USERNAME: drupal
      DRUPAL_DATABASE_PASSWORD: drupal
      DRUPAL_DATABASE_HOST: mysql
    container:
      image: pookmish/drupal8ci:latest
      options: '--network-alias drupal8ci'
    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_DATABASE: drupal
          MYSQL_USER: drupal
          MYSQL_PASSWORD: drupal
          MYSQL_ROOT_PASSWORD: drupal
        ports:
          - 33306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
    steps:
      - uses: actions/checkout@v4
        with:
          path: project
      - name: Run tests
        env:
          STANFORD_ENCRYPT: ${{ secrets.STANFORD_ENCRYPT }}
        run: |
          composer global require su-sws/stanford-caravan:10.x-dev
          ~/.config/composer/vendor/bin/sws-caravan codeception /var/www/html --extension-dir=$GITHUB_WORKSPACE/project --suites=acceptance
      - name: Save Test Results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: acceptance-tests-results
          path: /var/www/html/artifacts
  functional:
    name: Codeception Functional Tests
    runs-on: ubuntu-latest
    env:
      DRUPAL_DATABASE_NAME: drupal
      DRUPAL_DATABASE_USERNAME: drupal
      DRUPAL_DATABASE_PASSWORD: drupal
      DRUPAL_DATABASE_HOST: mysql
    container:
      image: pookmish/drupal8ci:latest
      options: '--network-alias=drupal8ci'
    services:
      selenium:
        image: selenium/standalone-chrome:115.0
        options: '--shm-size="2g"'
      mysql:
        image: mysql:5.7
        env:
          MYSQL_DATABASE: drupal
          MYSQL_USER: drupal
          MYSQL_PASSWORD: drupal
          MYSQL_ROOT_PASSWORD: drupal
        ports:
          - 33306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
    steps:
      - uses: actions/checkout@v4
        with:
          path: project
      - name: Run tests
        env:
          STANFORD_ENCRYPT: ${{ secrets.STANFORD_ENCRYPT }}=
        run: |
          composer global require su-sws/stanford-caravan:10.x-dev
          ~/.config/composer/vendor/bin/sws-caravan codeception /var/www/html --extension-dir=$GITHUB_WORKSPACE/project --suites=functional
      - name: Save Test Results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: functional-tests-results
          path: /var/www/html/artifacts