name: GitHubBuild on: [push] jobs: lint_etc: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 7.4 tools: composer extensions: sqlite3, gd - name: run install.sh run: /bin/bash install.sh - name: check composer run: composer validate # Needing to 'update' here isn't ideal, but we need to cope with tests that run under different PHP versions :-/ - name: Install dependencies run: composer update --prefer-dist -n - name: check formatting run: composer check-format - name: touch config.local.php run: touch config.local.php - name: psalm static analysis run: composer psalm testsuite: needs: [lint_etc] runs-on: ubuntu-22.04 strategy: matrix: php-versions: [ '7.4', '8.0', '8.1', '8.2', '8.3' ] steps: - uses: actions/checkout@v4 - name: Install Dovecot run: | set -eux sudo apt-get update -q sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq dovecot-core sudo sh -c '/sbin/useradd -G dovecot runner || usermod -aG dovecot runner ' - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-versions }} tools: composer extensions: sqlite3, gd - name: run install.sh run: /bin/bash install.sh - name: touch config.local.php run: touch config.local.php && php -v - name: Install dependencies run: composer install --prefer-dist -n - name: Build/test run: sudo -u runner composer test # build_coverage_report: # needs: [testsuite] # continue-on-error: true # runs-on: ubuntu-22.04 # steps: # - uses: actions/checkout@v4 # # - name: Setup PHP # uses: shivammathur/setup-php@v2 # with: # php-version: '7.4' # tools: composer # extensions: sqlite3, gd # # - name: run install.sh # run: /bin/bash install.sh # # - name: touch config.local.php # run: touch config.local.php && php -v # # - name: Install dependencies # run: composer update --prefer-dist -n # # - name: build coveralls coverage # run: php -d xdebug.mode=coverage vendor/bin/phpunit tests # # - name: Coveralls # run: vendor/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v || true # env: # COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}