| 
					
				 | 
			
			
				@@ -0,0 +1,130 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 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: '7.2' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          # 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 
			 |