Skip to content

Commit

Permalink
Issue #3: Run functional tests in GitHub Action (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
indigoxela authored Nov 30, 2024
1 parent b8fcab3 commit 1d2644d
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .github/misc/default.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<VirtualHost *:80>
# Variables in this file will be substituted in step "Setup Apache".
DocumentRoot _PWD

<Directory _PWD>
AllowOverride All
Require all granted
</Directory>

<FilesMatch ".+\.php$">
SetHandler "proxy:unix:/run/php/php_PHP_V-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
8 changes: 8 additions & 0 deletions .github/misc/settings.local.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php
/**
* @file
* Custom settings for test runs.
*/

// Never send telemetry data.
$settings['telemetry_enabled'] = FALSE;
84 changes: 84 additions & 0 deletions .github/workflows/functional-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Functional Tests
on: [pull_request]
jobs:
simpletest:
name: Run Simpletest
runs-on: ubuntu-20.04
steps:
- name: Setup env
run: |
echo "REPO_NAME=${PWD##*/}" >> $GITHUB_ENV
echo 'USE_PHP_V=8.3' >> $GITHUB_ENV
- name: Install MariaDB
uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: 'mariadb-10.11'
root-password: 'root'
auto-start: true

- name: Verify setup and create database
run: |
echo -e '[client]\nuser = root\npassword = root\nhost = 127.0.0.1' > ~/.my.cnf
mysql -e 'SELECT version()\G'
mysql -e 'CREATE DATABASE backdrop;'
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.USE_PHP_V }}
coverage: none
tools: none

- name: Checkout Backdrop core
uses: actions/checkout@v4
with:
repository: backdrop/backdrop

- name: Checkout dependency entity_plus
uses: actions/checkout@v4
with:
repository: backdrop-contrib/entity_plus
path: modules/entity_plus

- name: Checkout dependency entity_ui
uses: actions/checkout@v4
with:
repository: backdrop-contrib/entity_ui
path: modules/entity_ui

- name: Checkout dependency entity_token
uses: actions/checkout@v4
with:
repository: backdrop-contrib/entity_token
path: modules/entity_token

- name: Checkout dependency rules
uses: actions/checkout@v4
with:
repository: backdrop-contrib/rules
path: modules/rules

- name: Checkout module
uses: actions/checkout@v4
with:
path: modules/${{ env.REPO_NAME }}

- name: Setup Apache
run: |
sudo cp -f modules/${{ env.REPO_NAME }}/.github/misc/default.conf /etc/apache2/sites-available/000-default.conf
sudo sed -i -e "s?_PWD?$PWD?g" -e "s/_PHP_V/${{ env.USE_PHP_V }}/g" /etc/apache2/sites-available/000-default.conf
sudo apt-get install libapache2-mod-fcgid
sudo a2enmod rewrite proxy fcgid proxy_fcgi
sudo systemctl start apache2.service
sudo sed -i -e 's/user = www-data/user = runner/' /etc/php/${{ env.USE_PHP_V }}/fpm/pool.d/www.conf
sudo sed -i -e 's/listen.owner = www-data/listen.owner = runner/' /etc/php/${{ env.USE_PHP_V }}/fpm/pool.d/www.conf
sudo systemctl restart php${{ env.USE_PHP_V }}-fpm.service
- name: Install Backdrop
run: |
cp modules/${{ env.REPO_NAME }}/.github/misc/settings.local.php .
core/scripts/install.sh --db-url=mysql://root:[email protected]/backdrop
- name: Run functional tests
run: core/scripts/run-tests.sh --force --directory=modules/${{ env.REPO_NAME }} --verbose --color 2>&1

0 comments on commit 1d2644d

Please sign in to comment.