name: PHP Lint & Codeception on: [ push, pull_request ] jobs: build: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: php: [ '7.4', '8.0', '8.1', '8.2', '8.3' ] name: PHP ${{ matrix.php }} steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - name: Start MySQL and create database run: | sudo systemctl start mysql.service sudo mysql -uroot -proot -e "CREATE DATABASE rhymix CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci" sudo mysql -uroot -proot -e "CREATE USER rhymix@localhost IDENTIFIED WITH mysql_native_password BY 'rhymix'" sudo mysql -uroot -proot -e "GRANT ALL ON rhymix.* to rhymix@localhost; FLUSH PRIVILEGES" sudo mysql -uroot -proot -e "SELECT VERSION()" - name: PHP Lint run: if find . -name "*.php" ! -path "./common/vendor/*" -print0 | xargs -0 -n 1 -P 8 php -l | grep -v "No syntax errors detected"; then exit 1; fi - name: Download codeception run: wget https://res.rhymix.org/ci/php${{ matrix.php }}/codecept.phar - name: Run PHP development server run: php -S localhost:8000 & - name: Build and run codeception run: | php codecept.phar build php codecept.phar run --debug --fail-fast