From f704dfaf9708c599db55af54287cd9ba518f4e06 Mon Sep 17 00:00:00 2001 From: gthomas2 Date: Mon, 20 Nov 2023 20:06:59 +0000 Subject: [PATCH] Temp CI --- .github/workflows/moodle-ci.yml | 206 ++++++++++++++++++++------------ 1 file changed, 132 insertions(+), 74 deletions(-) diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml index 3ad86ce..20649cd 100644 --- a/.github/workflows/moodle-ci.yml +++ b/.github/workflows/moodle-ci.yml @@ -1,116 +1,174 @@ -name: Run all tests +name: Moodle Plugin CI -# Run this workflow every time a new commit pushed to your repository on: [push, pull_request] jobs: - setup: + test: runs-on: ubuntu-latest + services: postgres: - image: postgres:10 + image: postgres:13 env: POSTGRES_USER: 'postgres' POSTGRES_HOST_AUTH_METHOD: 'trust' - # Health check to wait for postgres to start. ports: - 5432:5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 + mariadb: - image: mariadb:10.5 + image: mariadb:10.6 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: - php-versions: ['7.3', '7.4'] - database: ['pgsql', 'mariadb'] - moodlebranch: ['master', 'MOODLE_400_STABLE', 'MOODLE_311_STABLE'] + include: + - php: 7.4 + moodle-branch: MOODLE_401_STABLE + database: mariadb + # - php: 7.4 + # moodle-branch: MOODLE_401_STABLE + # database: pgsql + # - php: 8.0 + # moodle-branch: MOODLE_401_STABLE + # database: mariadb + # - php: 8.0 + # moodle-branch: MOODLE_401_STABLE + # database: pgsql + # - php: 8.1 + # moodle-branch: MOODLE_401_STABLE + # database: mariadb + # - php: 8.1 + # moodle-branch: MOODLE_401_STABLE + # database: pgsql + # - php: 8.1 + # moodle-branch: MOODLE_402_STABLE + # database: mariadb + # - php: 8.1 + # moodle-branch: MOODLE_402_STABLE + # database: pgsql + # - php: 8.1 + # moodle-branch: MOODLE_403_STABLE + # database: mariadb + # - php: 8.1 + # moodle-branch: MOODLE_403_STABLE + # database: pgsql + # - php: 8.2 + # moodle-branch: MOODLE_402_STABLE + # database: mariadb + # - php: 8.2 + # moodle-branch: MOODLE_402_STABLE + # database: pgsql + # - php: 8.2 + # moodle-branch: MOODLE_403_STABLE + # database: mariadb + # - php: 8.2 + # moodle-branch: MOODLE_403_STABLE + # database: pgsql + steps: - name: Check out repository code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: - # Clone in plugin subdir, so we can setup CI in default directory. path: plugin - - name: Install node - uses: actions/setup-node@v1 + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 with: - # TODO: Check if we can support .nvmrc - node-version: '14.15.0' + php-version: ${{ matrix.php }} + extensions: ${{ matrix.extensions }} + ini-values: max_input_vars=5000 + coverage: none - - name: Setup PHP environment - uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php - with: - php-version: ${{ matrix.php-versions }} - extensions: mbstring, pgsql, mysqli - tools: phpunit - - - name: Deploy moodle-plugin-ci + - 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: Install moodle-plugin-ci - # Need explicit IP to stop mysql client fail on attempt to use unix socket. - run: moodle-plugin-ci install -vvv --plugin ./plugin --db-host=127.0.0.1 + run: | + mkdir -p /home/runner/work/behat_dump + moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 + moodle-plugin-ci add-config '$CFG->behat_increasetimeout = 2;' + moodle-plugin-ci add-config '$CFG->behat_faildump_path = "/home/runner/work/behat_dump";' env: DB: ${{ matrix.database }} - MOODLE_BRANCH: ${{ matrix.moodlebranch }} - - - name: Run phplint - if: ${{ always() }} - run: moodle-plugin-ci phplint - - - name: Run phpcpd - if: ${{ always() }} - run: moodle-plugin-ci phpcpd || true - - - name: Run phpmd - if: ${{ always() }} - run: moodle-plugin-ci phpmd - - - name: Run codechecker + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + IGNORE_PATHS: 'moodle/tests/fixtures,moodle/Sniffs,classes/vendor' + PHPCS_IGNORE_PATHS: /^classes\/vendor/ + PHPDOCCHECKER_IGNORE_PATHS: /^classes\/vendor/ + MUSTACHE_IGNORE_NAMES: 'report.mustache,questionnaire.mustache' + + # - name: PHP Lint + # 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 + # if: ${{ always() }} + # run: moodle-plugin-ci phpcs --max-warnings 0 || true + # + # - name: Moodle PHPDoc Checker + # if: ${{ always() }} + # run: moodle-plugin-ci phpdoc || true + # + # - name: Validating + # if: ${{ always() }} + # run: moodle-plugin-ci validate + # + # - name: Check upgrade savepoints + # if: ${{ always() }} + # run: moodle-plugin-ci savepoints + # + # - name: Mustache Lint + # continue-on-error: true # This step will show errors but will not fail + # if: ${{ always() }} + # run: moodle-plugin-ci mustache + # + # - name: Grunt + # if: ${{ always() }} + # run: moodle-plugin-ci grunt || true + # + # - name: PHPUnit tests + # if: ${{ always() }} + # run: moodle-plugin-ci phpunit --coverage-text || true + + # - name: Setup upterm session + # uses: lhotari/action-upterm@v1 + + - name: Behat features if: ${{ always() }} - run: moodle-plugin-ci codechecker - - - name: Run validate - if: ${{ always() }} - run: moodle-plugin-ci validate - - - name: Run savepoints - if: ${{ always() }} - run: moodle-plugin-ci savepoints - - - name: Run mustache - if: ${{ always() }} - run: moodle-plugin-ci phpcpd || true + working-directory: moodle + run: | + php admin/tool/behat/cli/init.php + moodle-plugin-ci behat --profile=chrome env: - MUSTACHE_IGNORE_NAMES: mobile_teacher_form.mustache + dbtype: ${{ matrix.database }} + MOODLE_START_BEHAT_SERVERS: YES - - name: Run grunt + - name: Upload behat dump. if: ${{ always() }} - run: moodle-plugin-ci grunt - - - name: Run phpdoc - if: ${{ always() }} - run: moodle-plugin-ci phpdoc - - - name: Run phpunit - if: ${{ always() }} - run: | - moodle-plugin-ci phpunit - cd moodle - vendor/bin/phpunit --fail-on-risky --disallow-test-output --filter tool_dataprivacy_metadata_registry_testcase - vendor/bin/phpunit --fail-on-risky --disallow-test-output --testsuite core_privacy_testsuite --filter provider_testcase - - - name: Run behat - if: ${{ always() }} - run: moodle-plugin-ci behat --profile chrome + uses: actions/upload-artifact@v2.3.1 + with: + name: behat-dump + path: /home/runner/work/behat_dump