Skip to content

Commit

Permalink
Merge pull request #192 from City-of-Helsinki/UHF-11137
Browse files Browse the repository at this point in the history
UHF-11137: Use same base image for tests
  • Loading branch information
tuutti authored Dec 19, 2024
2 parents 7b0a1e8 + 35adc61 commit c942610
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 89 deletions.
94 changes: 6 additions & 88 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,95 +4,13 @@ on:
branches:
- main
name: CI
env:
SYMFONY_DEPRECATIONS_HELPER: disabled
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
container:
image: ghcr.io/city-of-helsinki/drupal-php-docker:${{ matrix.php-versions }}-alpine

services:
db:
image: mysql:8
env:
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
MYSQL_DATABASE: drupal
MYSQL_ROOT_PASSWORD: drupal
ports:
- 3306:3306

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Parse $MODULE_NAME from composer.json
run: echo "MODULE_NAME=$(cat composer.json | jq -r .name | awk -F/ '{print $NF}')" >> $GITHUB_ENV

- name: Set Drupal root
run: echo "DRUPAL_ROOT=$HOME/drupal" >> $GITHUB_ENV

- name: Set module folder
run: |
echo "MODULE_FOLDER=$DRUPAL_ROOT/public/modules/contrib/$MODULE_NAME" >> $GITHUB_ENV
echo "BROWSERTEST_OUTPUT_DIRECTORY=$DRUPAL_ROOT/public/sites/simpletest" >> $GITHUB_ENV
- name: Clone platform
run: |
git clone --depth=1 https://github.com/City-of-Helsinki/drupal-helfi-platform.git $DRUPAL_ROOT
rm -rf $DRUPAL_ROOT/.git
- name: Install required composer dependencies
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
composer config repositories.5 path $GITHUB_WORKSPACE
composer require drupal/$MODULE_NAME -W
# We use COMPOSER_MIRROR_PATH_REPOS=1 to mirror local repository
# instead of symlinking it to prevent code coverage issues with
# phpunit. Copy .git folder manually so codecov can generate line by
# line coverage.
cp -r $GITHUB_WORKSPACE/.git $MODULE_FOLDER/
- 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 $MODULE_NAME -y
- name: Run PHPCS
working-directory: ${{ env.DRUPAL_ROOT }}
run: vendor/bin/phpcs $MODULE_FOLDER --standard=Drupal,DrupalPractice --extensions=php,module,install

- name: Run phpstan
working-directory: ${{ env.DRUPAL_ROOT }}
run: vendor/bin/phpstan analyze -c $MODULE_FOLDER/phpstan.neon $MODULE_FOLDER

- name: Start services
working-directory: ${{ env.DRUPAL_ROOT }}
run: vendor/bin/drush runserver $SIMPLETEST_BASE_URL --dns &

- name: Run PHPUnit tests
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
vendor/bin/phpunit \
--bootstrap $DRUPAL_ROOT/public/core/tests/bootstrap.php \
-c $MODULE_FOLDER/phpunit.xml \
--coverage-clover=$MODULE_FOLDER/coverage.xml \
$MODULE_FOLDER
- name: Run codecov
working-directory: ${{ env.MODULE_FOLDER }}
run: codecov -t ${{ secrets.CODECOV_TOKEN }}

- name: Create an artifact from test report
uses: actions/upload-artifact@v4
if: always()
with:
name: results-${{ matrix.php-versions }}
path: ${{ env.BROWSERTEST_OUTPUT_DIRECTORY }}
retention-days: 1
php-versions: ['8.3']
uses: city-of-helsinki/drupal-gh-actions/.github/workflows/module-tests.yml@main
with:
php_version: ${{ matrix.php-versions }}
secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
12 changes: 12 additions & 0 deletions phpcs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<ruleset name="Drupal">
<arg name="extensions" value="php,module,install,theme,inc"/>
<exclude-pattern>*.css</exclude-pattern>
<exclude-pattern>*.js</exclude-pattern>
<rule ref="Drupal" />
<rule ref="DrupalPractice">
<exclude name="DrupalPractice.General.OptionsT.TforValue" />
<exclude name="DrupalPractice.Objects.UnusedPrivateMethod.UnusedMethod" />
</rule>
<rule ref="Generic.PHP.RequireStrictTypes" />
</ruleset>
1 change: 0 additions & 1 deletion phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
<ini name="error_reporting" value="32767"/>
<!-- Do not limit the amount of memory tests take to run. -->
<ini name="memory_limit" value="-1"/>
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value='["chrome", {"browserName":"chrome","chromeOptions":{"w3c": false, "args":["--disable-gpu","--headless", "--no-sandbox"]}}, "http://127.0.0.1:4444"]' />
</php>
<testsuites>
<testsuite name="unit">
Expand Down
2 changes: 2 additions & 0 deletions src/Annotation/DebugDataItem.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

declare(strict_types=1);

namespace Drupal\helfi_api_base\Annotation;

use Drupal\Component\Annotation\Plugin;
Expand Down
2 changes: 2 additions & 0 deletions src/ApiClient/ApiFixture.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

declare(strict_types=1);

namespace Drupal\helfi_api_base\ApiClient;

use Drupal\Core\File\Exception\FileNotExistsException;
Expand Down
2 changes: 2 additions & 0 deletions tests/src/Unit/ApiClient/ApiFixtureTest.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

declare(strict_types=1);

namespace Drupal\Tests\helfi_api_base\Unit;

use Drupal\Core\File\Exception\FileNotExistsException;
Expand Down

0 comments on commit c942610

Please sign in to comment.