From 65e7a8d16a245e07206ed8644b49d84a4f5469bf Mon Sep 17 00:00:00 2001 From: Justus Dieckmann Date: Mon, 13 May 2024 14:45:07 +0200 Subject: [PATCH] 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