Skip to content

Commit

Permalink
Let's run the integration tests using the generated PHAR
Browse files Browse the repository at this point in the history
It's enough to run the tests once per supported PHP version.

Also, update the CHANGELOG to share about these new tests.
  • Loading branch information
stronk7 committed Sep 15, 2023
1 parent f9c7381 commit f50d8ca
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,3 +163,96 @@ jobs:
run: |
make build
php build/moodle-plugin-ci.phar list
- name: Upload PHAR for later use
uses: actions/upload-artifact@v3
with:
name: 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 built PHAR
uses: actions/download-artifact@v3
with:
name: phar
path: build

- name: Install moodle-plugin-ci (PHAR)
run: 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: |
build/moodle-plugin-ci.phar phplint
build/moodle-plugin-ci.phar phpcpd
build/moodle-plugin-ci.phar phpmd
build/moodle-plugin-ci.phar phpcs
build/moodle-plugin-ci.phar phpcbf
build/moodle-plugin-ci.phar validate
build/moodle-plugin-ci.phar savepoints
build/moodle-plugin-ci.phar mustache
build/moodle-plugin-ci.phar grunt
build/moodle-plugin-ci.phar phpdoc
build/moodle-plugin-ci.phar phpunit --verbose --coverage-text --fail-on-warning
build/moodle-plugin-ci.phar behat --profile default
build/moodle-plugin-ci.phar behat --profile chrome
1 change: 1 addition & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ The format of this change log follows the advice given at [Keep a CHANGELOG](htt
- Fixed the `mustache` command execution.
- Fixed the `phpcs` and `phpcbf` commands execution.
- Fixed the `phpdoc` command to use the bundled `coreapis.txt` file.
- Fix the lack of CI testing with the PHAR package. Now 100% covered.

## [4.1.3] - 2023-09-08
### Changed
Expand Down

0 comments on commit f50d8ca

Please sign in to comment.