diff --git a/.github/workflows/moodle-plugin-ci.yml b/.github/workflows/moodle-plugin-ci.yml new file mode 100644 index 0000000..c56cf92 --- /dev/null +++ b/.github/workflows/moodle-plugin-ci.yml @@ -0,0 +1,115 @@ +name: Moodle plugin CI +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php: ['7.4', '8.0'] + moodle-branch: ['MOODLE_311_STABLE', 'MOODLE_400_STABLE', 'MOODLE_401_STABLE', 'master'] + database: ['mariadb', 'pgsql'] + + services: + postgres: + image: postgres:14 + env: + POSTGRES_USER: 'postgres' + POSTGRES_HOST_AUTH_METHOD: 'trust' + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 3 + ports: + - 5432:5432 + + mariadb: + image: mariadb:10.5 + 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 + + steps: + - name: Checkout + 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: Deploy moodle-plugin-ci + run: | + composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 + # Add dirs to $PATH + echo $(cd ci/bin; pwd) >> $GITHUB_PATH + echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH + # PHPUnit depends on en_AU.UTF-8 locale + sudo locale-gen en_AU.UTF-8 + echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV + + - name: Install Moodle + # Need explicit IP to stop mysql client fail on attempt to use unix socket. + run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 + env: + DB: ${{ matrix.database }} + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + IGNORE_PATHS: 'templates/local/mobile' + + - 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 codechecker + + - name: Moodle PHPDoc Checker + if: ${{ always() }} + run: moodle-plugin-ci phpdoc + + - 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 + + - name: Behat features + if: ${{ always() }} + run: moodle-plugin-ci behat --profile chrome diff --git a/README.md b/README.md index b53f9c8..a7ec0c9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,13 @@ -# To Install it manually # +moodle-filter_multilang2 +======================== + + +[![Latest Release](https://img.shields.io/github/v/release/iarenaza/moodle-filter_multilang2?sort=semver&color=orange)](https://github.com/iarenaza/moodle-filter_multilang2/releases) +[![Moodle Plugin +CI](https://github.com/iarenaza/moodle-filter_multilang2/workflows/Moodle%20plugin%20CI/badge.svg?branch=master)](https://github.com/iarenaza/moodle-filter_multilang2/actions?query=workflow%3A%22Moodle+plugin+CI%22+branch%3Amaster) + +# +To Install it manually # - Unzip the plugin in the moodle .../filter/ directory. # To Enable it # diff --git a/classes/privacy/provider.php b/classes/privacy/provider.php index f16f472..315cb52 100644 --- a/classes/privacy/provider.php +++ b/classes/privacy/provider.php @@ -25,8 +25,6 @@ namespace filter_multilang2\privacy; -defined('MOODLE_INTERNAL') || die(); - /** * Privacy Subsystem for filter_multilang2 implementing null_provider. * diff --git a/filter.php b/filter.php index 1f27a60..4d5972f 100644 --- a/filter.php +++ b/filter.php @@ -24,8 +24,6 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); - /** * Given multilinguage text, return relevant text according to current language. * diff --git a/tests/filter_test.php b/tests/filter_test.php index 42ced2f..0ebff4f 100644 --- a/tests/filter_test.php +++ b/tests/filter_test.php @@ -26,6 +26,10 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace filter_multilang2; + +use filter_multilang2; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -42,8 +46,9 @@ * @copyright 2014 Damyon Wiese * @copyright 2016 IƱaki Arenaza & Mondragon Unibertsitatea * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @covers filter_multilang2 */ -class filter_multilang2_testcase extends advanced_testcase { +class filter_test extends \advanced_testcase { /** @var object The filter plugin object to perform the tests on */ protected $filter; @@ -56,7 +61,7 @@ class filter_multilang2_testcase extends advanced_testcase { protected function setUp():void { parent::setUp(); $this->resetAfterTest(true); - $this->filter = new filter_multilang2(context_system::instance(), array()); + $this->filter = new filter_multilang2(\context_system::instance(), array()); } /**