Files
roundcubemail/.github/workflows/ci.yml
Pablo Zmdl 16f9de14e1 WIP: reduce artifacts of testing in source code dir
Note: This breaks tests that download files
2025-06-17 14:42:52 +02:00

84 lines
2.4 KiB
YAML

name: CI
on:
push:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
cs:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
name: Coding Style
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup PHP
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
with:
php-version: "8.3"
extensions: mbstring
tools: composer:v2
coverage: none
- name: Install dependencies
run: |
composer install --prefer-dist --no-interaction --no-progress
npm install --omit=optional
- name: Check Coding Style - PHP
run: vendor/bin/php-cs-fixer fix --dry-run --using-cache=no --diff --verbose
- name: Check composer.json format
run: composer validate --strict --no-check-lock && composer normalize --dry-run --no-check-lock
- name: Check Coding Style - JS
run: npx eslint --ext .js .
- name: Plugins - Check composer.json format
run: |
for plugin_dir in plugins/*/; do (
echo "========== $plugin_dir =========="
cd "$plugin_dir"
composer validate --strict --no-check-lock && composer normalize --dry-run --no-check-lock "$plugin_dir/composer.json"
echo " "
); done
phpstan:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
name: Static Analysis
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup PHP
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
with:
php-version: "8.4"
extensions: mbstring
tools: composer:v2
coverage: none
- name: Setup composer
run: |
composer require "kolab/net_ldap3:~1.1.1" --no-update
composer require "laravel/dusk:^8.3" --no-update
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Run Static Analysis
run: vendor/bin/phpstan analyse -v