Skip to content

test_and_lint

test_and_lint #716

Workflow file for this run

name: test_and_lint
env:
SIMPLETEST_DB: "sqlite://localhost//tmp/test.sqlite"
SIMPLETEST_BASE_URL: "http://127.0.0.1:8000"
APIGEE_EDGE_AUTH_TYPE: ${{ secrets.APIGEE_EDGE_AUTH_TYPE }}
APIGEE_EDGE_ORGANIZATION: ${{ secrets.APIGEE_EDGE_ORGANIZATION }}
APIGEE_EDGE_USERNAME: ${{ secrets.APIGEE_EDGE_USERNAME }}
APIGEE_EDGE_PASSWORD: ${{ secrets.APIGEE_EDGE_PASSWORD }}
APIGEE_EDGE_INSTANCE_TYPE: ${{ secrets.APIGEE_EDGE_INSTANCE_TYPE }}
APIGEE_INTEGRATION_ENABLE: ${{ secrets.APIGEE_INTEGRATION_ENABLE }}
APIGEE_EDGE_ENDPOINT: ${{ secrets.APIGEE_EDGE_ENDPOINT }}
BROWSERTEST_OUTPUT_DIRECTORY: "sites/simpletest/browser_output"
BROWSERTEST_OUTPUT_BASE_URL: ""
MINK_DRIVER_ARGS_WEBDRIVER: '["chrome", { "chromeOptions": { "w3c": false } }, "http://127.0.0.1:9515/wd/hub"]'
on:
push:
pull_request_target:
schedule:
- cron: '30 01 * * *'
jobs:
build:
runs-on: ubuntu-latest
name: "PHP ${{ matrix.php-version }} | Drupal ${{ matrix.drupal-core }}"
strategy:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
drupal-core:
# Should update the following as the minimum supported version from Drupal.org
- "10.2.x"
- "10.3.x"
steps:
- name: Disable deprecations check for PR
if: github.event_name != 'schedule'
run: |
echo "Disable deprecations check"
echo "SYMFONY_DEPRECATIONS_HELPER=disabled" >> $GITHUB_ENV
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "xdebug"
php-version: "${{ matrix.php-version }}"
tools: composer:v2
extensions: dom, curl, libxml, mbstring, zip, pdo, mysql, pdo_mysql, bcmath, gd, exif, iconv, opcache, imagick
- name: Checkout Drupal core
run: |
git clone --depth 1 --branch ${{ matrix.drupal-core }} https://github.com/drupal/drupal.git drupal
mkdir -p drupal/modules/contrib/apigee_api_catalog
mkdir -p drupal/sites/simpletest/browser_output
- name: Checkout apigee_api_catalog module
uses: actions/checkout@v4
with:
path: drupal/modules/contrib/apigee_api_catalog
- name: "Allow plugins and dev dependencies"
run: |
cd drupal
composer config --no-plugins allow-plugins.composer/installers true
composer config --no-plugins allow-plugins.drupal/core-composer-scaffold true
composer config --no-plugins allow-plugins.drupal/core-project-message true
composer config --no-plugins allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer config --no-plugins allow-plugins.wikimedia/composer-merge-plugin true
composer config --no-plugins allow-plugins.composer/package-versions-deprecated true
composer config --no-plugins allow-plugins.cweagans/composer-patches true
composer config --no-plugins allow-plugins.php-http/discovery true
composer config minimum-stability dev
composer require wikimedia/composer-merge-plugin
composer config --json extra.merge-plugin.require '["modules/contrib/apigee_api_catalog/composer.json"]'
composer config platform.php ${{ matrix.php-version }}
composer config --json extra.patches."drupal/core" '{ "Support entities that are neither content nor config entities": "https://www.drupal.org/files/issues/2020-12-02/3042467-50.patch"}'
composer update --with-all-dependencies
composer require --dev phpspec/prophecy-phpunit:^2
# Install drupal using minimal installation profile and enable the module.
- name: Install Drupal
run: |
cd drupal
php -d sendmail_path=$(which true); vendor/bin/drush --yes -v site-install minimal --db-url="$SIMPLETEST_DB"
vendor/bin/drush rs 8000 &
- name: "PHPCS"
run: |
cd drupal
cp modules/contrib/apigee_api_catalog/phpcs.xml.dist .
vendor/bin/phpcs --standard=./phpcs.xml.dist modules/contrib/apigee_api_catalog -p -s -n --colors
composer show > composer.show.txt
- name: Artifacts
uses: actions/upload-artifact@v4
with:
name: composer-${{ matrix.php-version }}-${{ matrix.drupal-core }}-artifact
path: drupal/composer.*
- uses: nanasess/setup-chromedriver@v2
- run: |
export DISPLAY=:99
chromedriver --url-base=/wd/hub &
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
- name: "Run PHPUnit Tests"
if: ${{ matrix.drupal-core != '10.2.x' || matrix.php-version != '8.2' }}
run: |
cd drupal
vendor/bin/phpunit -c core --verbose --color --group apigee_api_catalog --testsuite unit,kernel,functional,functional-javascript modules/contrib/apigee_api_catalog
- name: "Run PHPUnit Tests with Code Coverage"
if: ${{ matrix.drupal-core == '10.2.x' && matrix.php-version == '8.2' }}
run: |
cd drupal
cp modules/contrib/apigee_api_catalog/phpunit.core.xml.dist core/phpunit.xml
vendor/bin/phpunit -c core --verbose --color --group apigee_api_catalog --testsuite unit,kernel,functional,functional-javascript --coverage-clover /tmp/coverage.xml modules/contrib/apigee_api_catalog
- name: Artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: browser-output-${{ matrix.php-version }}-${{ matrix.drupal-core }}-artifact
path: drupal/sites/simpletest/browser_output/*
- name: Upload Coverage to Codecov
if: ${{ matrix.drupal-core == '10.2.x' && matrix.php-version == '8.2' }}
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: /tmp/coverage.xml
name: codecov-umbrella
fail_ci_if_error: true
verbose: true