diff --git a/.github/workflows/config.json b/.github/workflows/config.json new file mode 100644 index 00000000..19b14eae --- /dev/null +++ b/.github/workflows/config.json @@ -0,0 +1,12 @@ +{ + "main-moodle": "MOODLE_405_STABLE", + "main-php": "8.3", + "moodle-php": { + "MOODLE_401_STABLE": ["7.4", "8.1"], + "MOODLE_402_STABLE": ["8.0", "8.2"], + "MOODLE_403_STABLE": ["8.0", "8.2"], + "MOODLE_404_STABLE": ["8.1", "8.3"], + "MOODLE_405_STABLE": ["8.1", "8.2", "8.3"] + }, + "moodle-plugin-ci": "4.4.5" +} diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml index cc8943b7..c483a452 100644 --- a/.github/workflows/moodle-ci.yml +++ b/.github/workflows/moodle-ci.yml @@ -1,160 +1,7 @@ name: Moodle Plugin CI - -on: [push, pull_request] +on: [ push, pull_request ] jobs: - static: - runs-on: ubuntu-latest - - strategy: - matrix: - php: ['8.2'] - moodle-branch: ['MOODLE_404_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:14 - - - name: Check out repository code - uses: actions/checkout@v4 - with: - path: plugin - - - name: Setup PHP ${{ matrix.php }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - 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 ^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: | - 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 - continue-on-error: true - - - name: Grunt - if: ${{ always() }} - run: moodle-plugin-ci grunt - - test: - runs-on: ubuntu-latest - needs: static - - strategy: - fail-fast: false - matrix: - php: ['8.0', '8.1', '8.2'] - moodle-branch: ['MOODLE_401_STABLE', 'MOODLE_402_STABLE', 'MOODLE_403_STABLE', 'MOODLE_404_STABLE'] - database: ['mariadb', 'pgsql'] - exclude: - - php: '8.0' - moodle-branch: 'MOODLE_404_STABLE' - - php: '8.2' - moodle-branch: 'MOODLE_401_STABLE' - include: - - php: '7.4' - moodle-branch: 'MOODLE_401_STABLE' - database: 'pgsql' - - php: '7.4' - moodle-branch: 'MOODLE_401_STABLE' - database: 'mariadb' - - 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:14 - - - name: Check out repository code - uses: actions/checkout@v4 - with: - path: plugin - - - name: Setup PHP ${{ matrix.php }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - 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 - 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 --auto-rerun 0 - - # This step allows to upload Behat faildump (screenshots) as workflow artifact, - # so it can be downloaded and inspected. You don't need this step if you - # are not running Behat test. Artifact will be retained for 7 days. - - name: Upload Behat Faildump - if: ${{ failure() && steps.behat.outcome == 'failure' }} - uses: actions/upload-artifact@v4 - with: - name: Behat Faildump (${{ join(matrix.*, ', ') }}) - path: ${{ github.workspace }}/moodledata/behat_dump - retention-days: 7 - if-no-files-found: ignore + call: + name: "" + uses: learnweb/moodle-workflows-learnweb/.github/workflows/moodle-ci.yml@main diff --git a/.github/workflows/moodle-release.yml b/.github/workflows/moodle-release.yml index 1e0fa321..ae5dfba5 100644 --- a/.github/workflows/moodle-release.yml +++ b/.github/workflows/moodle-release.yml @@ -1,55 +1,12 @@ -# -# Whenever a new tag starting with "v" is pushed, add the tagged version -# to the Moodle Plugins directory at https://moodle.org/plugins -# -# revision: 2021070201 -# Changed to be released on Github release with the release notes. -# -name: Releasing in the Plugins directory +name: Moodle Plugin Release on: release: - types: [published] - -defaults: - run: - shell: bash + types: [ published ] jobs: - release-at-moodle-org: - runs-on: ubuntu-latest - env: - PLUGIN: tool_lifecycle - CURL: curl -s - ENDPOINT: https://moodle.org/webservice/rest/server.php - TOKEN: ${{ secrets.MOODLE_ORG_TOKEN }} - FUNCTION: local_plugins_add_version - - steps: - - name: Call the service function - id: add-version - env: - TAGNAME: ${{ github.event.release.tag_name }} - BODY: ${{ github.event.release.body }} - ZIPURL: ${{ github.event.release.zipball_url }} - run: | - RESPONSE=$(${CURL} ${ENDPOINT} --data-urlencode "wstoken=${TOKEN}" \ - --data-urlencode "wsfunction=${FUNCTION}" \ - --data-urlencode "moodlewsrestformat=json" \ - --data-urlencode "frankenstyle=${PLUGIN}" \ - --data-urlencode "zipurl=${ZIPURL}" \ - --data-urlencode "vcssystem=git" \ - --data-urlencode "vcsrepositoryurl=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" \ - --data-urlencode "vcstag=${TAGNAME}" \ - --data-urlencode "changelogurl=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/commits/${TAGNAME}" \ - --data-urlencode "altdownloadurl=${ZIPURL}" \ - --data-urlencode "releasenotes=${BODY@Q}" \ - --data-urlencode "releasenotesformat=4") - echo "response=${RESPONSE}" >> $GITHUB_OUTPUT - - name: Evaluate the response - id: evaluate-response - env: - RESPONSE: ${{ steps.add-version.outputs.response }} - run: | - jq <<< ${RESPONSE} - jq --exit-status ".id" <<< ${RESPONSE} > /dev/null + call-moodle-release-workflow: + uses: learnweb/moodle-workflows-learnweb/.github/workflows/moodle-release.yml@main + with: + plugin-name: 'tool_lifecycle' + secrets: inherit diff --git a/step/email/tests/privacy/provider_test.php b/step/email/tests/privacy/provider_test.php index 4ba4da1e..c0031044 100644 --- a/step/email/tests/privacy/provider_test.php +++ b/step/email/tests/privacy/provider_test.php @@ -48,6 +48,20 @@ */ final class provider_test extends provider_testcase { + /** @var stdClass test user1 */ + private $user1; + /** @var stdClass test user2 */ + private $user2; + /** @var stdClass test user3 */ + private $user3; + + /** @var stdClass test course1 */ + private $course1; + /** @var stdClass test course2 */ + private $course2; + /** @var stdClass test course3 */ + private $course3; + /** * Basic setup for the provider tests. * diff --git a/tests/process_error_test.php b/tests/process_error_test.php index 49259054..217af94d 100644 --- a/tests/process_error_test.php +++ b/tests/process_error_test.php @@ -112,8 +112,10 @@ public function test_process_error_in_table(): void { $this->assertEquals($this->course->id, $record->courseid); if (version_compare(PHP_VERSION, '8.0', '<')) { $this->assertStringContainsString("Trying to get property 'id' of non-object", $record->errormessage); - } else { + } else if (version_compare(PHP_VERSION, '8.3', '<')) { $this->assertStringContainsString("Attempt to read property \"id\" on bool", $record->errormessage); + } else { + $this->assertStringContainsString("Attempt to read property \"id\" on false", $record->errormessage); } $this->assertEquals($process->id, $record->id); } diff --git a/version.php b/version.php index e8f6b54a..ef0588e3 100644 --- a/version.php +++ b/version.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die; $plugin->maturity = MATURITY_BETA; -$plugin->version = 2024042300; +$plugin->version = 2024102400; $plugin->component = 'tool_lifecycle'; $plugin->requires = 2022112800; // Requires Moodle 4.1+. -$plugin->release = 'v4.4-r1'; +$plugin->release = 'v4.5-r1';