From f9c73812f2fb4ed715a8f814754a56b8c83b0ba7 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Fri, 15 Sep 2023 19:34:41 +0200 Subject: [PATCH 1/2] Let's build the PHAR package in normal tests Note that box requires php81 to work, no matter of that the generated packages can be executed with older PHP versions. --- .github/workflows/test.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 175048e9..e410fcb7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -54,7 +54,6 @@ jobs: files: ./build/logs/clover.xml verbose: true - citest: name: Integration tests needs: selftest @@ -144,3 +143,23 @@ jobs: moodle-plugin-ci phpunit --verbose --coverage-text --fail-on-warning moodle-plugin-ci behat --profile default moodle-plugin-ci behat --profile chrome + + buildphar: + name: Build moodle-plugin-ci.phar + needs: selftest + runs-on: ubuntu-22.04 + + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Setup PHP 8.1 + uses: shivammathur/setup-php@v2 + with: + php-version: 8.1 + ini-values: phar.readonly = false + + - name: Build PHAR + run: | + make build + php build/moodle-plugin-ci.phar list From 67f9e7fb27a6004e92a0ce4374452945e725c4d7 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Fri, 15 Sep 2023 19:47:52 +0200 Subject: [PATCH 2/2] Let's run the integration tests using the generated PHAR It's enough to run the tests once per supported PHP version. Also, update the CHANGELOG to share about these new tests. Closes #71 --- .github/workflows/test.yml | 93 ++++++++++++++++++++++++++++++++++++++ docs/CHANGELOG.md | 3 ++ 2 files changed, 96 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e410fcb7..d7dc7199 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -163,3 +163,96 @@ jobs: run: | make build php build/moodle-plugin-ci.phar list + + - name: Upload PHAR artifact + uses: actions/upload-artifact@v3 + with: + name: moodle-plugin-ci.phar + path: build/moodle-plugin-ci.phar + + phartest: + name: Integration tests (PHAR) + needs: buildphar + runs-on: ubuntu-22.04 + + services: + postgres: + 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 + + strategy: + fail-fast: false + matrix: + include: + # Each supported PHP version once. That's enough. + - php: '8.2' + moodle-branch: 'master' + - php: '8.1' + moodle-branch: 'MOODLE_402_STABLE' + - php: '8.0' + moodle-branch: 'MOODLE_401_STABLE' + - php: '7.4' + moodle-branch: 'MOODLE_400_STABLE' + + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: pgsql, zip, gd, xmlrpc, soap + ini-values: max_input_vars=5000 + coverage: pcov + + - name: Initialise moodle-plugin-ci + run: | + make init + cp -R tests/Fixture/moodle-local_ci ../moodle-local_ci + echo $(cd bin; pwd) >> $GITHUB_PATH + echo $(cd vendor/bin; pwd) >> $GITHUB_PATH + echo "CI_BUILD_DIR="$(cd ../moodle-local_ci; pwd) >> $GITHUB_ENV + # PHPUnit depends on en_AU.UTF-8 locale + sudo locale-gen en_AU.UTF-8 + # Define NVM_DIR pointing to nvm installation. + echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV + + - name: Download PHAR artifact + uses: actions/download-artifact@v3 + with: + name: moodle-plugin-ci.phar + path: build + + - name: Install moodle-plugin-ci (PHAR) + run: php build/moodle-plugin-ci.phar install -vvv + env: + DB: 'pgsql' + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + IGNORE_PATHS: 'ignore' + IGNORE_NAMES: 'ignore_name.php' + MUSTACHE_IGNORE_NAMES: 'broken.mustache' + + - name: Run Integration tests (PHAR) + env: + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + run: | + php build/moodle-plugin-ci.phar phplint + php build/moodle-plugin-ci.phar phpcpd + php build/moodle-plugin-ci.phar phpmd + php build/moodle-plugin-ci.phar phpcs + php build/moodle-plugin-ci.phar phpcbf + php build/moodle-plugin-ci.phar validate + php build/moodle-plugin-ci.phar savepoints + php build/moodle-plugin-ci.phar mustache + php build/moodle-plugin-ci.phar grunt + php build/moodle-plugin-ci.phar phpdoc + php build/moodle-plugin-ci.phar phpunit --verbose --coverage-text --fail-on-warning + php build/moodle-plugin-ci.phar behat --profile default + php build/moodle-plugin-ci.phar behat --profile chrome diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index bb5fab00..88f9910e 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -9,6 +9,9 @@ This project adheres to [Semantic Versioning](http://semver.org/). The format of this change log follows the advice given at [Keep a CHANGELOG](http://keepachangelog.com). ## [Unreleased] +### Added +- Covered the PHAR package with some new integration tests. + ### Changed - Reduced the number of own CI tests (internal change) executed with Travis. - Updated project dependencies to current [moodle-cs](https://github.com/moodlehq/moodle-cs).