From 65e7a8d16a245e07206ed8644b49d84a4f5469bf Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Mon, 13 May 2024 14:45:07 +0200 Subject: [PATCH 1/5] CI: Use central workflow --- .github/workflows/config.json | 11 ++ .github/workflows/moodle-ci.yml | 161 +-------------------------- .github/workflows/moodle-release.yml | 59 ++-------- 3 files changed, 25 insertions(+), 206 deletions(-) create mode 100644 .github/workflows/config.json diff --git a/.github/workflows/config.json b/.github/workflows/config.json new file mode 100644 index 00000000..ca519c93 --- /dev/null +++ b/.github/workflows/config.json @@ -0,0 +1,11 @@ +{ + "main-moodle": "MOODLE_404_STABLE", + "main-php": "8.2", + "moodle-php": { + "MOODLE_401_STABLE": ["7.4", "8.0", "8.1"], + "MOODLE_402_STABLE": ["8.0", "8.1", "8.2"], + "MOODLE_403_STABLE": ["8.0", "8.1", "8.2"], + "MOODLE_404_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..c4f4cbc5 100644 --- a/.github/workflows/moodle-release.yml +++ b/.github/workflows/moodle-release.yml @@ -1,55 +1,16 @@ -# -# 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] + types: [ published ] -defaults: - run: - shell: bash +######################################################################################################################## 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 From 9afd7df701142922a516894e516c8e0b26656d35 Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Mon, 13 May 2024 17:48:33 +0200 Subject: [PATCH 2/5] Fix codestyle --- step/email/tests/privacy/provider_test.php | 14 ++++++++++++++ tests/process_error_test.php | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) 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); } From 620d96ae3c0d4d2cc3571648e6a46052ac3801df Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Mon, 13 May 2024 18:48:31 +0200 Subject: [PATCH 3/5] CI: Test PHP 8.3 by default --- .github/workflows/config.json | 2 +- .github/workflows/moodle-release.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/config.json b/.github/workflows/config.json index ca519c93..45199c7b 100644 --- a/.github/workflows/config.json +++ b/.github/workflows/config.json @@ -1,6 +1,6 @@ { "main-moodle": "MOODLE_404_STABLE", - "main-php": "8.2", + "main-php": "8.3", "moodle-php": { "MOODLE_401_STABLE": ["7.4", "8.0", "8.1"], "MOODLE_402_STABLE": ["8.0", "8.1", "8.2"], diff --git a/.github/workflows/moodle-release.yml b/.github/workflows/moodle-release.yml index c4f4cbc5..ae5dfba5 100644 --- a/.github/workflows/moodle-release.yml +++ b/.github/workflows/moodle-release.yml @@ -1,13 +1,9 @@ name: Moodle Plugin Release -######################################################################################################################## - on: release: types: [ published ] -######################################################################################################################## - jobs: call-moodle-release-workflow: uses: learnweb/moodle-workflows-learnweb/.github/workflows/moodle-release.yml@main From ccf01baa99d55499c4ec1bb6a9f2bea45eb179d3 Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Sun, 13 Oct 2024 19:00:16 +0200 Subject: [PATCH 4/5] CI: Update for Moodle 4.5 --- .github/workflows/config.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/config.json b/.github/workflows/config.json index 45199c7b..19b14eae 100644 --- a/.github/workflows/config.json +++ b/.github/workflows/config.json @@ -1,11 +1,12 @@ { - "main-moodle": "MOODLE_404_STABLE", + "main-moodle": "MOODLE_405_STABLE", "main-php": "8.3", "moodle-php": { - "MOODLE_401_STABLE": ["7.4", "8.0", "8.1"], - "MOODLE_402_STABLE": ["8.0", "8.1", "8.2"], - "MOODLE_403_STABLE": ["8.0", "8.1", "8.2"], - "MOODLE_404_STABLE": ["8.1", "8.2", "8.3"] + "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" } From 56ba7eb59c8b95f2efc145cb746aaccbf76e68c7 Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Thu, 24 Oct 2024 10:25:43 +0200 Subject: [PATCH 5/5] Bump version for v4.5-r1 --- version.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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';