Skip to content

New cache purge script and scheduler plus updates to bulktester and graph question types (and misc other fixes) #344

New cache purge script and scheduler plus updates to bulktester and graph question types (and misc other fixes)

New cache purge script and scheduler plus updates to bulktester and graph question types (and misc other fixes) #344

Workflow file for this run

name: Moodle plugin CI
on: [push, pull_request]
jobs:
test:
runs-on: 'ubuntu-latest'
strategy:
fail-fast: false
matrix:
include:
- php: '8.2'
moodle-branch: 'MOODLE_404_STABLE'
database: 'pgsql'
- php: '8.1'
moodle-branch: 'MOODLE_403_STABLE'
database: 'mariadb'
- php: '8.0'
moodle-branch: 'MOODLE_402_STABLE'
database: 'pgsql'
- php: '7.4'
moodle-branch: 'MOODLE_401_STABLE'
database: 'pgsql'
- php: '7.3'
moodle-branch: 'MOODLE_400_STABLE'
database: 'mariadb'
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.6
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
steps:
- name: Checkout
uses: actions/checkout@v2
with:
path: plugin
- name: Setup PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mbstring, pgsql, mysqli
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 ^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: Start JobeInABox
run: sudo docker run -d -p 4000:80 --name jobe trampgeek/jobeinabox:latest
- name: Let JobeInABox settle
run: sleep 5s
- name: Test JobeInABox
run: |
curl http://localhost:4000/jobe/index.php/restapi/languages
curl http://localhost:4000/jobe/index.php/restapi/runs -H 'Content-Type: application/json; charset=utf-8' --data-binary '{"run_spec":{"language_id":"python3","sourcecode":"print(\"Hello sandbox!\")","sourcefilename":"__tester__.python3","input":"","file_list":[]}}'
- name: Create Test sandbox configuration
run: |
echo "<?php" > plugin/tests/fixtures/test-sandbox-config.php
echo "set_config('jobesandbox_enabled', 1, 'qtype_coderunner');" >> plugin/tests/fixtures/test-sandbox-config.php
echo "set_config('jobe_host', 'localhost:4000', 'qtype_coderunner');" >> plugin/tests/fixtures/test-sandbox-config.php
# Display it, at least for now, so it is east to check.
cat plugin/tests/fixtures/test-sandbox-config.php
- name: Install Moodle
run: |
moodle-plugin-ci add-plugin trampgeek/moodle-qbehaviour_adaptive_adapted_for_coderunner
moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1
moodle-plugin-ci add-config 'define("QTYPE_CODERUNNER_JOBE_HOST", "localhost:4000");'
env:
DB: ${{ matrix.database }}
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
- name: PHP Lint
continue-on-error: true # This step will show errors but will not fail
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
continue-on-error: true # This step will show errors but will not fail
if: ${{ always() }}
run: moodle-plugin-ci codechecker --max-warnings 0
- name: Moodle PHPDoc Checker
continue-on-error: true # This step will show errors but will not fail
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: ${{ matrix.moodle-branch == 'MOODLE_400_STABLE' }}
run: moodle-plugin-ci grunt
- name: PHPUnit tests
if: ${{ always() }}
run: moodle-plugin-ci phpunit
- name: Behat features
if: ${{ always() }}
run: moodle-plugin-ci behat --profile chrome