123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- # Run our PHPUnit tests
- name: PHPUnit-Tests
- # Controls when the action will run.
- # Run this workflow every time a new commit is pushed to your repository
- on: [push, pull_request]
- # A workflow run is made up of one or more jobs that can run sequentially or in parallel
- jobs:
- # This workflow contains a single job called "build"
- run-tests:
- # The type of runner that the job will run on
- runs-on: ubuntu-latest
- # Matrix Build for this job.
- strategy:
- matrix:
- php-versions: ['7.1', '7.2']
- # Name the matrix build so we can tell them apart.
- name: PHPUnit Testing of Tripal Core (PHP ${{ matrix.php-versions }})
- # Service containers to run with `run-tests`
- services:
- # Label used to access the service container
- postgres:
- # Docker Hub image
- image: postgres
- env:
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: dbpass
- POSTGRES_DB: test_db
- # Set health checks to wait until postgres has started
- options: >-
- --health-cmd pg_isready
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
- ports:
- # Maps tcp port 5432 on service container to the host
- - 5432:5432
- # Steps represent a sequence of tasks that will be executed as part of the job
- steps:
- # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- - name: Checkout Repository
- uses: actions/checkout@v2
- # Sets up the PHP environment for PHP 7.2
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-versions }}
- # Install extensions for PHP-PostgreSQL
- extensions: mbstring, intl, php-pgsql, php-gd, php-xml
- # Increase memory limit to 2G
- ini-values: memory_limit=2G
- # Enable xdebug for coverage reporting
- coverage: xdebug
- # Install composer and phpunit globally.
- tools: composer, phpunit
- # Install Drush 8.x globally
- # NOTE: `drush` is not available without the full path.
- # I tried adding it to the path but that broke other things.
- - name: Install Drush
- run: |
- composer global require "drush/drush:~8"
- /home/runner/.composer/vendor/bin/drush --version
- # Install Drupal and Drupal module dependencies for Tripal.
- # It also patches Drupal.
- - name: Install Drupal
- env:
- DRUSH: "/home/runner/.composer/vendor/bin/drush"
- DRUPAL_ROOT: "/home/runner/work/drupal"
- POSTGRES_CONNECTION_STRING: 'pgsql://postgres:dbpass@localhost:5432/test_db'
- ACCOUNT_NAME: tripaladmin
- ACCOUNT_PASS: somereallysecurepassword
- run: |
- echo "==> Downloading Drupal"
- cd /home/runner/work
- $DRUSH dl drupal-7 -y
- mv drupal-7* drupal
- echo "==> Installing Drupal"
- cd $DRUPAL_ROOT
- $DRUSH si -y --root=$DRUPAL_ROOT \
- --db-url=$POSTGRES_CONNECTION_STRING \
- --account-name=$ACCOUNT_NAME \
- --account-pass=$ACCOUNT_PASS \
- --site-mail=admin@example.com \
- --site-name=Tripal3
- echo "==> Downloading dependencies"
- $DRUSH dl -y views ctools entity redirect date ds field_group field_group_table
- echo "==> Enabling Dependencies"
- $DRUSH en -y views ctools entity redirect date ds field_group field_group_table
- echo "==> Apply Drupal Patch"
- cd $DRUPAL_ROOT
- wget --no-check-certificate https://drupal.org/files/drupal.pgsql-bytea.27.patch
- patch -p1 < drupal.pgsql-bytea.27.patch
- # Install Tripal, Chado and prepares the Drupal/Chado databases
- # Also patches views.
- - name: Install Tripal
- env:
- DRUSH: "/home/runner/.composer/vendor/bin/drush"
- DRUPAL_ROOT: "/home/runner/work/drupal"
- POSTGRES_CONNECTION_STRING: 'pgsql://postgres:dbpass@localhost:5432/test_db'
- ACCOUNT_NAME: tripaladmin
- ACCOUNT_PASS: somereallysecurepassword
- run: |
- echo "==> Move Tripal into the Drupal modules directory"
- ls /home/runner/work/tripal/tripal
- cp -R /home/runner/work/tripal/tripal $DRUPAL_ROOT/sites/all/modules
- echo "==> Apply Views Patch"
- cd $DRUPAL_ROOT/sites/all/modules/views
- patch -p1 < ../tripal/tripal_chado_views/views-sql-compliant-three-tier-naming-1971160-30.patch
- echo "==> Install Tripal"
- cd $DRUPAL_ROOT
- $DRUSH en -y tripal tripal_chado tripal_chado_views tripal_ws tripal_ds
- echo "==> Install Chado"
- $DRUSH eval "module_load_include('inc', 'tripal_chado', 'includes/tripal_chado.install'); tripal_chado_load_drush_submit('Install Chado v1.3');"
- $DRUSH trp-run-jobs --username=$ACCOUNT_NAME
- echo "==> Prepare Chado"
- $DRUSH eval "module_load_include('inc', 'tripal_chado', 'includes/setup/tripal_chado.setup'); tripal_chado_prepare_drush_submit();"
- $DRUSH trp-run-jobs --username=$ACCOUNT_NAME
- # Runs the PHPUnit tests.
- # https://github.com/mheap/phpunit-github-actions-printer is used
- # to report PHPUnit fails in a meaningful way to github in PRs.
- - name: PHPUnit Tests
- env:
- DRUSH: "/home/runner/.composer/vendor/bin/drush"
- DRUPAL_ROOT: "/home/runner/work/drupal"
- POSTGRES_CONNECTION_STRING: 'pgsql://postgres:dbpass@localhost:5432/test_db'
- ACCOUNT_NAME: tripaladmin
- ACCOUNT_PASS: somereallysecurepassword
- run: |
- cd $DRUPAL_ROOT/sites/all/modules/tripal
- composer require --dev mheap/phpunit-github-actions-printer
- composer update
- cp tests/.travis.env tests/.env
- ./vendor/bin/phpunit --printer mheap\\GithubActionsReporter\\Printer
|