From 727bc499f2ce9c9463d10b20d81c2b709cffc63c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro?= Date: Mon, 25 Mar 2024 10:23:59 -0300 Subject: [PATCH 1/2] Add Moodle Plugin CI support --- .github/workflows/main.yml | 223 +++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..665ae3b5a --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,223 @@ +# Title of the workflow +name: Moodle Office 365 Plugin CI + +# Run this workflow every time a new commit pushed to your repository or PR +# created. +on: [push, pull_request] + +jobs: + check: + runs-on: ubuntu-22.04 + + 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 + env: + MYSQL_USER: 'root' + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + MYSQL_CHARACTER_SET_SERVER: "utf8mb4" + MYSQL_COLLATION_SERVER: "utf8mb4_unicode_ci" + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3 + + strategy: + fail-fast: false + matrix: + include: + - folder: auth/oidc + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: pgsql + internal-deps: "" + - folder: auth/oidc + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: pgsql + internal-deps: "" + - folder: auth/oidc + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: mariadb + internal-deps: "" + - folder: auth/oidc + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: mariadb + internal-deps: "" + - folder: blocks/microsoft + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: pgsql + - folder: blocks/microsoft + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: pgsql + internal-deps: "" + - folder: blocks/microsoft + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: mariadb + internal-deps: "" + - folder: blocks/microsoft + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: mariadb + internal-deps: "" + - folder: local/o365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: pgsql + internal-deps: "auth/oidc" + - folder: local/o365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: pgsql + internal-deps: "auth/oidc" + - folder: local/o365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: mariadb + internal-deps: "auth/oidc" + - folder: local/o365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: mariadb + internal-deps: "auth/oidc" + - folder: repository/office365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: pgsql + internal-deps: "local/o365" + - folder: repository/office365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: pgsql + internal-deps: "local/o365" + - folder: repository/office365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: mariadb + internal-deps: "local/o365" + - folder: repository/office365 + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: mariadb + internal-deps: "local/o365" + - folder: theme/boost_o365teams + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: pgsql + internal-deps: "local/o365" + - folder: theme/boost_o365teams + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: pgsql + internal-deps: "local/o365" + - folder: theme/boost_o365teams + moodle-branch: 'MOODLE_403_STABLE' + php: 8.0 + database: mariadb + internal-deps: "local/o365" + - folder: theme/boost_o365teams + moodle-branch: 'MOODLE_403_STABLE' + php: 8.1 + database: mariadb + internal-deps: "local/o365" + + steps: + - name: Check out sub repository code + uses: actions/checkout@v4 + with: + sparse-checkout: | + ${{ matrix.folder }} + ${{ matrix.internal-deps }} + path: plugin + + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + ini-values: max_input_vars=5000 + # If you are not using code coverage, keep "none". Otherwise, use "pcov" (Moodle 3.10 and up) or "xdebug". + # If you try to use code coverage with "none", it will fallback to phpdbg (which has known problems). + coverage: none + + # Install this project into a directory called "ci", updating PATH and + # locale, define nvm location. + - 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 + + # Run the default install. + - name: Install moodle-plugin-ci + run: | + mkdir -p ./extra-plugins + for dep in ${{ matrix.internal-deps }}; do + mkdir -p ./extra-plugins/${dep/\//_} + mv -v ./plugin/$dep/* ./extra-plugins/${dep/\//_}/ + done + moodle-plugin-ci install --plugin ./plugin/${{ matrix.folder }} --db-host=127.0.0.1 --extra-plugins ./extra-plugins + env: + DB: ${{ matrix.database }} + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + SHELLOPTS: errexit:nounset:xtrace + + - name: PHP Lint + if: ${{ !cancelled() }} # prevents CI run stopping if step failed. + run: moodle-plugin-ci phplint + + - name: PHP Mess Detector + continue-on-error: true + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpmd + + - name: Moodle Code Checker + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpcs --max-warnings 0 + + - name: Moodle PHPDoc Checker + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpdoc --max-warnings 0 + + - name: Validating + if: ${{ !cancelled() }} + run: moodle-plugin-ci validate + + - name: Check upgrade savepoints + if: ${{ !cancelled() }} + run: moodle-plugin-ci savepoints + + - name: Mustache Lint + if: ${{ !cancelled() }} + run: moodle-plugin-ci mustache + + - name: Grunt + if: ${{ !cancelled() }} + run: moodle-plugin-ci grunt --max-lint-warnings 0 + + - name: PHPUnit tests + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpunit + + - name: Behat features + id: behat + if: ${{ !cancelled() }} + run: moodle-plugin-ci behat --profile chrome + + - name: Mark cancelled jobs as failed. + if: ${{ cancelled() }} + run: exit 1 From 941ad4673f124b7c2cd6bcd92bf7a554791e02dc Mon Sep 17 00:00:00 2001 From: Lai Wei Date: Wed, 24 Jul 2024 17:14:50 +0100 Subject: [PATCH 2/2] Update Moodle Plugin CI support to Moodle 4.2 --- .github/workflows/main.yml | 114 ++++++------------------------------- 1 file changed, 18 insertions(+), 96 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 665ae3b5a..67c8a8f79 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,106 +33,24 @@ jobs: strategy: fail-fast: false matrix: + folder: [auth/oidc, blocks/microsoft, local/o365, local/office365, local/onenote, repository/office365, theme/boost_o365teams, mod/assign/feedback/onenote, mod/assign/submission/onenote] + moodle-branch: ['MOODLE_402_STABLE'] + php: [8.0, 8.1, 8.2] + database: [pgsql, mariadb] + include: - folder: auth/oidc - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: pgsql - internal-deps: "" - - folder: auth/oidc - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: pgsql - internal-deps: "" - - folder: auth/oidc - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: mariadb - internal-deps: "" - - folder: auth/oidc - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: mariadb - internal-deps: "" - - folder: blocks/microsoft - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: pgsql - folder: blocks/microsoft - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: pgsql - internal-deps: "" - - folder: blocks/microsoft - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: mariadb - internal-deps: "" - - folder: blocks/microsoft - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: mariadb - internal-deps: "" - folder: local/o365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: pgsql internal-deps: "auth/oidc" - - folder: local/o365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: pgsql - internal-deps: "auth/oidc" - - folder: local/o365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: mariadb - internal-deps: "auth/oidc" - - folder: local/o365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: mariadb - internal-deps: "auth/oidc" - - folder: repository/office365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: pgsql - internal-deps: "local/o365" - - folder: repository/office365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: pgsql - internal-deps: "local/o365" + - folder: local/office365 + - folder: local/onenote - folder: repository/office365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: mariadb - internal-deps: "local/o365" - - folder: repository/office365 - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: mariadb - internal-deps: "local/o365" - - folder: theme/boost_o365teams - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: pgsql - internal-deps: "local/o365" - - folder: theme/boost_o365teams - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: pgsql - internal-deps: "local/o365" - - folder: theme/boost_o365teams - moodle-branch: 'MOODLE_403_STABLE' - php: 8.0 - database: mariadb - internal-deps: "local/o365" - folder: theme/boost_o365teams - moodle-branch: 'MOODLE_403_STABLE' - php: 8.1 - database: mariadb - internal-deps: "local/o365" + - folder: mod/assign/feedback/onenote + internal-deps: "local/onenote" + - folder: mod/assign/submission/onenote + internal-deps: "local/onenote" steps: - name: Check out sub repository code @@ -166,9 +84,13 @@ jobs: - name: Install moodle-plugin-ci run: | mkdir -p ./extra-plugins - for dep in ${{ matrix.internal-deps }}; do - mkdir -p ./extra-plugins/${dep/\//_} - mv -v ./plugin/$dep/* ./extra-plugins/${dep/\//_}/ + for dep in ${{ matrix.internal-deps }}; do + if [ -d "./plugin/$dep" ]; then + mkdir -p ./extra-plugins/${dep/\//_} + mv -v ./plugin/$dep/* ./extra-plugins/${dep/\//_}/ + else + echo "Directory ./plugin/$dep does not exist" + fi done moodle-plugin-ci install --plugin ./plugin/${{ matrix.folder }} --db-host=127.0.0.1 --extra-plugins ./extra-plugins env: