name: Moodle Plugin CI on: [push, pull_request] jobs: static: runs-on: ubuntu-latest strategy: matrix: php: ['7.4'] moodle-branch: ['MOODLE_311_STABLE'] database: ['pgsql'] steps: - name: Start PostgreSQL run: docker run -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:9.6 - name: Check out repository code uses: actions/checkout@v2 with: path: plugin - name: Setup PHP ${{ matrix.php }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none - name: Get composer cache directory id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Composer cache uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- - name: npm cache uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Initialise moodle-plugin-ci run: | composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 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: | moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 --no-init env: DB: ${{ matrix.database }} MOODLE_BRANCH: ${{ matrix.moodle-branch }} - name: PHP Lint if: ${{ always() }} run: moodle-plugin-ci phplint - name: PHP Copy/Paste Detector if: ${{ always() }} run: moodle-plugin-ci phpcpd - name: PHP Mess Detector 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 test: runs-on: ubuntu-latest needs: static strategy: fail-fast: false matrix: php: ['7.3', '7.4'] moodle-branch: ['MOODLE_39_STABLE', 'MOODLE_310_STABLE', 'MOODLE_311_STABLE'] database: ['mariadb', 'pgsql'] steps: - name: Start MariaDB if: matrix.database == 'mariadb' run: docker run -p 3306:3306 -e MYSQL_USER=root -e MYSQL_ALLOW_EMPTY_PASSWORD=true -d mariadb:10 - name: Start PostgreSQL if: matrix.database == 'pgsql' run: docker run -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:9.6 - name: Check out repository code uses: actions/checkout@v2 with: path: plugin - name: Setup PHP ${{ matrix.php }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none - name: Get composer cache directory id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Composer cache uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- - name: npm cache uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Initialise moodle-plugin-ci run: | composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 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: | moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 env: DB: ${{ matrix.database }} MOODLE_BRANCH: ${{ matrix.moodle-branch }} - name: PHPUnit tests if: ${{ always() }} run: moodle-plugin-ci phpunit - name: Behat features if: ${{ always() }} run: moodle-plugin-ci behat --profile chrome