Skip to content

delete white space

delete white space #25

name: Tests
on:
push:
pull_request:
branches: [ '1.x' ]
env:
SIMPLETEST_DB: "mysql://drupal:drupal@mariadb:3306/drupal"
SIMPLETEST_BASE_URL: "http://127.0.0.1:8080"
DRUPAL_MODULE_NAME: "bluecadet_accessibility"
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
drupal-core: ['9.5.x', '10.0.x', '10.1.x', '10.2.x']
php-version: ['8.0', '8.1', '8.2']
mariadb-version: ['10.4', '10.6']
exclude:
-
drupal-core: '9.4.x'
php-version: '8.2'
mariadb-version: '10.4'
-
drupal-core: '9.4.x'
php-version: '8.2'
mariadb-version: '10.6'
-
drupal-core: '9.5.x'
php-version: '8.2'
mariadb-version: '10.4'
-
drupal-core: '9.5.x'
php-version: '8.2'
mariadb-version: '10.6'
-
drupal-core: '10.0.x'
php-version: '8.0'
mariadb-version: '10.4'
-
drupal-core: '10.0.x'
php-version: '8.0'
mariadb-version: '10.6'
-
drupal-core: '10.1.x'
php-version: '8.0'
mariadb-version: '10.4'
-
drupal-core: '10.1.x'
php-version: '8.0'
mariadb-version: '10.6'
-
drupal-core: '10.2.x'
php-version: '8.0'
mariadb-version: '10.4'
-
drupal-core: '10.2.x'
php-version: '8.0'
mariadb-version: '10.6'
container:
# See https://github.com/tuutti/docker-images/tree/main/drupal/ci
# to see how this image is built.
image: ghcr.io/tuutti/drupal-php-docker:${{ matrix.php-version }}
services:
mariadb:
image: mariadb:${{ matrix.mariadb-version }}
env:
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
MYSQL_DATABASE: drupal
MYSQL_ROOT_PASSWORD: drupal
ports:
- 3306:3306
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
# The next two steps exposes $DRUPAL_ROOT and $MODULE_FOLDER environment
# variables.
#
# They have to be set in separate steps because $DRUPAL_ROOT variable
# won't be accessible in currently active step.
# You can access them either with $DRUPAL_ROOT and $MODULE_FOLDER or
# ${{ env.DRUPAL_ROOT }} and ${{ env.MODULE_FOLDER }}.
- name: Define DRUPAL_ROOT env variable
run: echo "DRUPAL_ROOT=$HOME/drupal" >> $GITHUB_ENV
# Change the module folder according to your needs, it's probably either
# modules/contrib/$DRUPAL_MODULE_NAME or modules/custom/$DRUPAL_MODULE_NAME.
- name: Set module folder
run: |
echo "MODULE_FOLDER=$DRUPAL_ROOT/modules/bluecadet/$DRUPAL_MODULE_NAME" \
>> $GITHUB_ENV
# Clone Drupal core into $DRUPAL_ROOT folder.
# Core version can be set by changing $DRUPAL_CORE_VERSION.
- name: Clone drupal
run: |
git clone --depth 1 --branch "${{ matrix.drupal-core }}" \
http://git.drupal.org/project/drupal.git/ $DRUPAL_ROOT
# Override the platform.php config with currently active PHP version.
# As of writing this, the composer.json shipped with core sets
# platform.php version to 7.3.0, meaning we possibly get dependencies
# that won't work with php 8+.
- name: Override the platform.php version
working-directory: ${{ env.DRUPAL_ROOT }}
run: composer config platform.php ${{ matrix.php-version }}
# Set the module folder as a composer repository, so the latest code
# is symlinked from $GITHUB_WORKSPACE to modules/ folder.
- name: Install the module
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
composer config --no-plugins allow-plugins.oomphinc/composer-installers-extender true
composer config repositories.$DRUPAL_MODULE_NAME '{"type": "path", "url": "$GITHUB_WORKSPACE", "options": {"symlink": true}}'
composer config extra.installer-paths
composer config --json extra.installer-types '["custom-drupal-module"]'
composer config --json --merge extra.installer-paths '{"modules/bluecadet/{$name}": ["type:custom-drupal-module"]}'
composer require mglaman/drupal-check --dev
composer require bluecadet/$DRUPAL_MODULE_NAME
# PHP 8+ requires newer phpunit, use core's composer script
# to upgrade it.
- name: Upgrade phpunit
working-directory: ${{ env.DRUPAL_ROOT }}
run: composer run-script drupal-phpunit-upgrade
# We use drush's build-in webserver to run tests. Make sure
# Drush is installed.
- name: Install drush
working-directory: ${{ env.DRUPAL_ROOT }}
run: composer require "drush/drush:^11|^12"
- name: Install PHPCS
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
composer config --no-plugins allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer require --dev "drupal/coder"
# Install Drupal using minimal installation profile and enable the module.
- name: Install Drupal
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
php -d sendmail_path=$(which true); vendor/bin/drush --yes -v \
site-install minimal --db-url="$SIMPLETEST_DB"
vendor/bin/drush en $DRUPAL_MODULE_NAME -y
- name: Run PHPCS
working-directory: ${{ env.DRUPAL_ROOT }}
continue-on-error: true
run: |
vendor/bin/phpcs -s --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt --ignore=node_modules,bower_components,vendor,dist --exclude=Drupal.InfoFiles.AutoAddedKeys --colors $MODULE_FOLDER
vendor/bin/phpcs -s --standard=DrupalPractice --extensions=php,module,inc,install,test,profile,theme,css,info,txt --ignore=node_modules,bower_components,vendor,dist --exclude=Drupal.InfoFiles.AutoAddedKeys --colors $MODULE_FOLDER
- name: Run Drupal-Check
working-directory: ${{ env.DRUPAL_ROOT }}
continue-on-error: true
run: |
php vendor/bin/drupal-check $MODULE_FOLDER --drupal-root ${{ env.DRUPAL_ROOT }}
- name: Start Drush webserver and chromedriver
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
vendor/bin/drush runserver $SIMPLETEST_BASE_URL > /dev/null 2>&1 &
chromedriver --port=4444 > /dev/null 2>&1 &
# Wait for drush server to start.
for i in {1..5}; do \
RESPONSE_CODE=$(curl -s -o /dev/null \
-w "%{http_code}" "$SIMPLETEST_BASE_URL" || true); \
if [ "$RESPONSE_CODE" -gt "301" ] || [ "$RESPONSE_CODE" -lt "200" ]; \
then sleep 2; fi; done
# Chromium browser is required to run functional javascript tests.
# You can remove or uncomment this step if you don't have any functional
# js tests.
- name: Start chromium-browser
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
chromium-browser --headless --disable-gpu \
--no-sandbox \
--remote-debugging-port=9222 &
# Run tests using core's run-tests.sh script. See the example below
# to run tests using phpunit.
# - name: Run tests
# working-directory: ${{ env.DRUPAL_ROOT }}
# run: |
# php ./core/scripts/run-tests.sh --dburl $SIMPLETEST_DB \
# --php /usr/local/bin/php --color --verbose \
# --sqlite /tmp/test.sqlite \
# --url $SIMPLETEST_BASE_URL $DRUPAL_MODULE_NAME
# Uncomment this step to run tests using phpunit. Your module is expected
# to ship with 'phpunit.xml' file. See the repository for an example
# phpunit.xml file.
- name: Run tests
working-directory: ${{ env.DRUPAL_ROOT }}
continue-on-error: true
run: |
vendor/bin/phpunit --bootstrap $DRUPAL_ROOT/core/tests/bootstrap.php -c $MODULE_FOLDER/phpunit.xml $MODULE_FOLDER