diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml index 5b81efe..0d27a9d 100644 --- a/.github/workflows/moodle-ci.yml +++ b/.github/workflows/moodle-ci.yml @@ -1,41 +1,55 @@ name: Moodle Plugin CI -on: [ push, pull_request ] +on: [ push, pull_request, workflow_dispatch ] jobs: test: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 env: PHPUNIT_IGNORE_PATHS: 'classes/admin,classes/output,classes/privacy' services: postgres: - image: postgres:10 + 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.5 + 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: + max-parallel: 1 fail-fast: false matrix: - php: [ '7.3', '7.4' ] - moodle-branch: [ 'master', 'MOODLE_311_STABLE' ] + php: [ '8.0', '8.1' ] + moodle-branch: [ 'master', 'MOODLE_402_STABLE', 'MOODLE_401_STABLE', 'MOODLE_400_STABLE' ] database: [ pgsql, mariadb ] + exclude: + - { moodle-branch: 'MOODLE_400_STABLE', php: '8.1' } + include: + - { moodle-branch: 'MOODLE_400_STABLE', php: '8.0' } + - { moodle-branch: 'MOODLE_401_STABLE', php: '8.0' } + - { moodle-branch: 'MOODLE_401_STABLE', php: '8.1' } + - { moodle-branch: 'MOODLE_402_STABLE', php: '8.0' } + - { moodle-branch: 'MOODLE_402_STABLE', php: '8.1' } + - { moodle-branch: 'master', php: '8.0' } + - { moodle-branch: 'master', php: '8.1' } steps: - name: Check out repository code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: plugin @@ -43,14 +57,19 @@ jobs: uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} + extensions: ${{ matrix.extensions }} + ini-values: max_input_vars=5000 + # If you are not using code coverage, keep "none". Otherwise, use "pcov" (Moodle 3.10 and up) or "xdebug". + # If you try to use code coverage with "none", it will fallback to phpdbg (which has known problems). coverage: none - name: Initialise moodle-plugin-ci run: | - composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 + 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: Install moodle-plugin-ci run: | @@ -72,6 +91,10 @@ jobs: if: ${{ always() }} run: moodle-plugin-ci phpmd + - name: PHP Code Sniffer + if: ${{ always() }} + run: moodle-plugin-ci phpcs + - name: Moodle Code Checker if: ${{ always() }} run: moodle-plugin-ci codechecker @@ -79,7 +102,7 @@ jobs: - name: Moodle PHPDoc Checker continue-on-error: true # This step will show errors but will not fail if: ${{ always() }} - run: moodle-plugin-ci phpdoc + run: moodle-plugin-ci phpdoc --max-warnings 0 - name: Validating if: ${{ always() }} @@ -97,7 +120,7 @@ jobs: - name: Grunt if: ${{ always() }} - run: moodle-plugin-ci grunt + run: moodle-plugin-ci grunt --max-lint-warnings 0 - name: PHPUnit tests if: ${{ always() }} @@ -111,5 +134,5 @@ jobs: continue-on-error: true # This step will show errors but will not fail env: COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - if: ${{ matrix.php == '7.4' && matrix.moodle-branch == 'MOODLE_311_STABLE' && matrix.database == 'mariadb'}} + if: ${{ matrix.php == '8.1' && matrix.moodle-branch == 'MOODLE_402_STABLE' && matrix.database == 'mariadb'}} run: moodle-plugin-ci coveralls-upload