diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..99e7afd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,140 @@ +name: Moodle plugin CI for master + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + citest: + name: CI test + runs-on: 'ubuntu-latest' + + services: + postgres: + image: postgres + 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 + env: + MYSQL_USER: 'root' + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + ports: + - 3306:3306 + options: >- + --health-cmd="mysqladmin ping" + --health-interval 10s + --health-timeout 5s + --health-retries 3 + strategy: + fail-fast: false + matrix: + database: ['pgsql', 'mariadb'] + moodle-branch: ['MOODLE_39_STABLE', 'MOODLE_38_STABLE', 'MOODLE_37_STABLE'] + node: ['14.15.1'] + php: ['7.2', '7.3'] + include: + - {moodle-branch: 'MOODLE_35_STABLE', php: '7.1', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_35_STABLE', php: '7.2', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_37_STABLE', php: '7.1', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_37_STABLE', php: '7.1', node: '14.15.1', database: 'pgsql'} + - {moodle-branch: 'MOODLE_38_STABLE', php: '7.1', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_38_STABLE', php: '7.1', node: '14.15.1', database: 'pgsql'} + - {moodle-branch: 'MOODLE_38_STABLE', php: '7.4', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_38_STABLE', php: '7.4', node: '14.15.1', database: 'pgsql'} + - {moodle-branch: 'MOODLE_39_STABLE', php: '7.4', node: '14.15.1', database: 'mariadb'} + - {moodle-branch: 'MOODLE_39_STABLE', php: '7.4', node: '14.15.1', database: 'pgsql'} + + steps: + - name: Check out repository code + uses: actions/checkout@v2 + with: + path: plugin + + - name: Install node ${{ matrix.node }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: pgsql, zip, gd, xmlrpc, soap + coverage: none + + - name: Initialise 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 + - name: Install Moodle + run: | + mkdir ~/.npm-global + npm config set prefix '~/.npm-global' + export PATH=~/.npm-global/bin:$PATH + source ~/.profile + moodle-plugin-ci install -vvv --plugin ./plugin --db-host=127.0.0.1 + env: + DB: ${{ matrix.database }} + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + + - name: Run phplint + if: ${{ always() }} + run: moodle-plugin-ci phplint + + - name: Run phpcpd + if: ${{ always() }} + run: moodle-plugin-ci phpcpd || true + + - name: Run phpmd + if: ${{ always() }} + run: moodle-plugin-ci phpmd + + - name: Run codechecker + if: ${{ always() }} + run: moodle-plugin-ci codechecker + + - name: Run validate + if: ${{ always() }} + run: moodle-plugin-ci validate + + - name: Run savepoints + if: ${{ always() }} + run: moodle-plugin-ci savepoints + + - name: Run mustache + if: ${{ always() }} + run: moodle-plugin-ci phpcpd + + - name: Run grunt + if: ${{ always() }} + run: moodle-plugin-ci grunt + + - name: Run phpdoc + if: ${{ always() }} + run: moodle-plugin-ci phpdoc + + - name: Run phpunit + if: ${{ always() }} + run: moodle-plugin-ci phpunit + + - name: Run behat + if: ${{ always() }} + run: moodle-plugin-ci behat --profile chrome \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7522fdb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,75 +0,0 @@ -language: php - -services: - - mysql - -addons: - firefox: "47.0.1" - postgresql: "9.6" - apt: - packages: - - openjdk-8-jre - -cache: - directories: - - $HOME/.composer/cache - - $HOME/.npm - -php: - - 7.2 - -env: - - DB=pgsql MOODLE_BRANCH=MOODLE_36_STABLE NODEJS=8 - - DB=mysqli MOODLE_BRANCH=MOODLE_36_STABLE NODEJS=8 - - DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE - - DB=pgsql MOODLE_BRANCH=MOODLE_38_STABLE - - DB=pgsql MOODLE_BRANCH=MOODLE_39_STABLE - - DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE - -matrix: - include: - - php: 7.0 - env: DB=pgsql MOODLE_BRANCH=MOODLE_35_STABLE - - php: 7.0 - env: DB=mysqli MOODLE_BRANCH=MOODLE_36_STABLE NODEJS=8 - - php: 7.2 - env: DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE - - php: 7.2 - env: DB=pgsql MOODLE_BRANCH=MOODLE_38_STABLE - - php: 7.4 - env: DB=pgsql MOODLE_BRANCH=MOODLE_39_STABLE - - php: 7.2 - env: DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE - -before_install: - - export MOODLE_VERSION=$(echo "$MOODLE_BRANCH" | cut -d'_' -f 2) - - phpenv config-rm xdebug.ini - - if [ "$NODEJS" = 8 ]; then - nvm install 8.9; - nvm use 8.9; - else - nvm install 14.0.0; - nvm use 14.0.0; - fi - - cd ../.. - - composer selfupdate - - composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3; - - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH" - -install: - - moodle-plugin-ci install - -script: - - moodle-plugin-ci phplint - - moodle-plugin-ci phpcpd - - moodle-plugin-ci phpmd - - moodle-plugin-ci codechecker - - moodle-plugin-ci validate - - moodle-plugin-ci savepoints - - moodle-plugin-ci mustache - - moodle-plugin-ci grunt - - moodle-plugin-ci phpunit -# Behat tests are failing due to issue: -# https://github.com/blackboard-open-source/moodle-plugin-ci/issues/70 -# Commenting it out until the issue is fixed. -# - moodle-plugin-ci behat