-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
486 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
name: Moodle Plugin CI | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-22.04 | ||
|
||
services: | ||
postgres: | ||
image: postgres:13 | ||
env: | ||
POSTGRES_USER: 'postgres' | ||
POSTGRES_HOST_AUTH_METHOD: 'trust' | ||
ports: | ||
- 5432:5432 | ||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 | ||
|
||
mariadb: | ||
image: mariadb:10 | ||
env: | ||
MYSQL_USER: 'root' | ||
MYSQL_ALLOW_EMPTY_PASSWORD: "true" | ||
MYSQL_CHARACTER_SET_SERVER: "utf8mb4" | ||
MYSQL_COLLATION_SERVER: "utf8mb4_unicode_ci" | ||
ports: | ||
- 3306:3306 | ||
options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3 | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php: ['8.0', '8.1', '8.2'] | ||
moodle-branch: ['MOODLE_403_STABLE'] | ||
database: [pgsql, mariadb] | ||
|
||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v3 | ||
with: | ||
path: plugin | ||
|
||
- name: Setup PHP ${{ matrix.php }} | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php }} | ||
extensions: ${{ matrix.extensions }} | ||
ini-values: max_input_vars=5000 | ||
coverage: none | ||
|
||
- name: Initialise moodle-plugin-ci | ||
run: | | ||
composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^4 | ||
echo $(cd ci/bin; pwd) >> $GITHUB_PATH | ||
echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH | ||
sudo locale-gen en_AU.UTF-8 | ||
echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV | ||
- name: Add Boost Union as dependency | ||
run: | | ||
moodle-plugin-ci add-plugin --branch master moodle-an-hochschulen/moodle-theme_boost_union | ||
- name: Copy and modify Boost Union Behat tests to be used on Boost Union Child | ||
# The Moodle Behat init script ignores Behat features from themes which are not active. | ||
# However, our goal is to run all Boost Union tests on Boost Union Child to verify that Boost Union Child | ||
# does not break any of Boost Union's features. | ||
# To realize this, we copy the Boost Union feature files to the Boost Union child test directory. | ||
# The Behat init script won't ignore them there then. | ||
run: | | ||
# Copy the Boost Union feature files to a temporary folder. | ||
mkdir plugin/tests/behatbu | ||
cp moodle-plugin-ci-plugins/moodle-theme_boost_union/tests/behat/*.feature plugin/tests/behatbu/ | ||
# Add a suffix to the feature title in the Boost Union features. | ||
# This is necessary as the Moodle code checker would otherwise complain about duplicate feature names. | ||
sed -i '/^Feature:/ s/$/ - Running on Boost Union Child/' plugin/tests/behatbu/*.feature | ||
# Add the @theme_boost_union_child tag to the tag list of the Boost Union features. | ||
# This is necessary as the Moodle plugin validator would otherwise complain about the missing tag. | ||
sed -i '1 s/$/ @theme_boost_union_child/' plugin/tests/behatbu/*.feature | ||
# Move the modified Boost Union feature files to the Boost Union Child Behat test directory. | ||
mv plugin/tests/behatbu/*.feature plugin/tests/behat/ | ||
rm -rf plugin/tests/behatbu | ||
- name: Install moodle-plugin-ci | ||
run: | | ||
moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 | ||
env: | ||
DB: ${{ matrix.database }} | ||
MOODLE_BRANCH: ${{ matrix.moodle-branch }} | ||
|
||
- name: PHP Lint | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phplint | ||
|
||
- name: PHP Copy/Paste Detector | ||
continue-on-error: true # This step will show errors but will not fail | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phpcpd | ||
|
||
- name: PHP Mess Detector | ||
continue-on-error: true # This step will show errors but will not fail | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phpmd | ||
|
||
- name: Moodle Code Checker | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phpcs --max-warnings 0 | ||
|
||
- name: Moodle PHPDoc Checker | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phpdoc --max-warnings 0 | ||
|
||
- name: Validating | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci validate | ||
|
||
- name: Check upgrade savepoints | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci savepoints | ||
|
||
- name: Mustache Lint | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci mustache | ||
|
||
- name: Grunt | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci grunt --max-lint-warnings 0 | ||
|
||
- name: PHPUnit tests | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci phpunit --fail-on-warning | ||
|
||
- name: Behat features | ||
if: ${{ always() }} | ||
run: moodle-plugin-ci behat --profile chrome --suite boost_union_child --tags="@theme_boost_union,@theme_boost_union_child" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat administration-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_admin.php'); | ||
|
||
use Behat\Gherkin\Node\TableNode as TableNode, | ||
Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException; | ||
|
||
/** | ||
* Administration-related step definition overrides for the Boost Union theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_admin extends behat_theme_boost_union_behat_admin { | ||
} |
42 changes: 42 additions & 0 deletions
42
tests/behat/behat_theme_boost_union_child_behat_blocks.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat blocks-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_blocks.php'); | ||
|
||
use Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException; | ||
|
||
/** | ||
* Blocks-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_blocks extends behat_theme_boost_union_behat_blocks { | ||
} |
45 changes: 45 additions & 0 deletions
45
tests/behat/behat_theme_boost_union_child_behat_course.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat course-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_course.php'); | ||
|
||
use Behat\Gherkin\Node\TableNode as TableNode, | ||
Behat\Mink\Exception\ExpectationException as ExpectationException, | ||
Behat\Mink\Exception\DriverException as DriverException, | ||
Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException; | ||
|
||
/** | ||
* Course-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_course extends behat_theme_boost_union_behat_course { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat grade-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_grade.php'); | ||
|
||
use Behat\Gherkin\Node\TableNode as TableNode; | ||
|
||
/** | ||
* Grade-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_grade extends behat_theme_boost_union_behat_grade { | ||
} |
42 changes: 42 additions & 0 deletions
42
tests/behat/behat_theme_boost_union_child_behat_mod_forum.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat mod_forum-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_mod_forum.php'); | ||
|
||
use Behat\Gherkin\Node\TableNode as TableNode; | ||
|
||
/** | ||
* Forum-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_mod_forum extends behat_theme_boost_union_behat_mod_forum { | ||
} |
43 changes: 43 additions & 0 deletions
43
tests/behat/behat_theme_boost_union_child_behat_mod_quiz.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Behat mod_quiz-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. | ||
// For that reason, we can't even rely on $CFG->admin being available here. | ||
|
||
require_once(__DIR__ . '/../../../boost_union/tests/behat/behat_theme_boost_union_behat_mod_quiz.php'); | ||
|
||
use Behat\Gherkin\Node\TableNode as TableNode; | ||
use Behat\Mink\Exception\ExpectationException as ExpectationException; | ||
|
||
/** | ||
* Quiz-related step definition overrides for the Boost Union Child theme. | ||
* | ||
* @package theme_boost_union_child | ||
* @category test | ||
* @copyright 2022 Luca Bösch, BFH Bern University of Applied Sciences luca.boesch@bfh.ch | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class behat_theme_boost_union_child_behat_mod_quiz extends behat_theme_boost_union_behat_mod_quiz { | ||
} |
Oops, something went wrong.