diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index 08715b1..be6bb9d 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -14,30 +14,140 @@ on: # yamllint disable-line rule:truthy
workflow_dispatch:
jobs:
+ phplinter:
+ name: 'PHP-Linter'
+ strategy:
+ fail-fast: false
+ matrix:
+ php-version: ['8.1', '8.2', '8.3', '8.4']
+
+ uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/reusable_phplinter.yml@v1.9.2
+ with:
+ php-version: ${{ matrix.php-version }}
+
linter:
- name: Linter
- runs-on: ['ubuntu-latest']
+ name: 'Linter'
+ strategy:
+ fail-fast: false
+
+ uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/reusable_linter.yml@v1.9.2
+ with:
+ enable_eslinter: false
+ enable_jsonlinter: true
+ enable_stylelinter: false
+ enable_yamllinter: true
+
+ unit-tests-linux:
+ name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
+ runs-on: ${{ matrix.operating-system }}
+ needs: [phplinter, linter, quality, security]
+ strategy:
+ fail-fast: false
+ matrix:
+ operating-system: [ubuntu-latest]
+ php-versions: ['8.1', '8.2', '8.3', '8.4']
steps:
+ - name: Setup PHP, with composer and extensions
+ # https://github.com/shivammathur/setup-php
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: ctype, date, dom, fileinfo, filter, hash, intl, mbstring, openssl, pcre, posix, spl, xml
+ tools: composer
+ ini-values: error_reporting=E_ALL
+ coverage: pcov
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Set git to use LF
+ run: |
+ git config --global core.autocrlf false
+ git config --global core.eol lf
+
- uses: actions/checkout@v4
+
+ - name: Get composer cache directory
+ run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v4
with:
- fetch-depth: 0
-
- - name: Lint Code Base
- uses: super-linter/super-linter/slim@v7
- env:
- SAVE_SUPER_LINTER_OUTPUT: false
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- LINTER_RULES_PATH: 'tools/linters'
- LOG_LEVEL: NOTICE
- VALIDATE_ALL_CODEBASE: true
- VALIDATE_CSS: true
- VALIDATE_JAVASCRIPT_ES: true
- VALIDATE_JSON: true
- VALIDATE_PHP_BUILTIN: true
- VALIDATE_YAML: true
- VALIDATE_XML: true
- VALIDATE_GITHUB_ACTIONS: true
+ path: $COMPOSER_CACHE
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+
+ - name: Install Composer dependencies
+ run: composer install --no-progress --prefer-dist --optimize-autoloader
+
+ - name: Run unit tests with coverage
+ if: ${{ matrix.php-versions == '8.4' }}
+ run: vendor/bin/phpunit
+
+ - name: Run unit tests (no coverage)
+ if: ${{ matrix.php-versions != '8.4' }}
+ run: vendor/bin/phpunit --no-coverage
+
+ - name: Save coverage data
+ if: ${{ matrix.php-versions == '8.4' }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-data
+ path: ${{ github.workspace }}/build
+
+ unit-tests-windows:
+ name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
+ runs-on: ${{ matrix.operating-system }}
+ needs: [phplinter, linter]
+ strategy:
+ fail-fast: true
+ matrix:
+ operating-system: [windows-latest]
+ php-versions: ['8.1', '8.2', '8.3', '8.4']
+
+ steps:
+ - name: Setup PHP, with composer and extensions
+ # https://github.com/shivammathur/setup-php
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: ctype, date, dom, fileinfo, filter, hash, intl, mbstring, openssl, pcre, posix, spl, xml
+ tools: composer
+ ini-values: error_reporting=E_ALL
+ coverage: none
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Set git to use LF
+ run: |
+ git config --global core.autocrlf false
+ git config --global core.eol lf
+
+ - uses: actions/checkout@v4
+
+ - name: Get composer cache directory
+ run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$env:GITHUB_ENV"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v4
+ with:
+ path: $COMPOSER_CACHE
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+
+ - name: Install Composer dependencies
+ run: composer install --no-progress --prefer-dist --optimize-autoloader --ignore-platform-req=ext-posix
+
+ - name: Run unit tests
+ run: vendor/bin/phpunit --no-coverage
quality:
name: Quality control
@@ -50,7 +160,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
# Should be the higest supported version, so we can use the newest tools
- php-version: '8.3'
+ php-version: '8.4'
tools: composer, composer-require-checker, composer-unused, phpcs, psalm
# optional performance gain for psalm: opcache
extensions: ctype, date, dom, fileinfo, filter, hash, intl, mbstring, opcache, openssl, pcre, posix, spl, xml
@@ -148,118 +258,6 @@ jobs:
- name: Security check for updated dependencies
run: composer audit
- unit-tests-linux:
- name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
- runs-on: ${{ matrix.operating-system }}
- needs: [linter, quality, security]
- strategy:
- fail-fast: false
- matrix:
- operating-system: [ubuntu-latest]
- php-versions: ['8.1', '8.2', '8.3']
-
- steps:
- - name: Setup PHP, with composer and extensions
- # https://github.com/shivammathur/setup-php
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: ctype, date, dom, fileinfo, filter, hash, intl, mbstring, openssl, pcre, posix, spl, xml
- tools: composer
- ini-values: error_reporting=E_ALL
- coverage: pcov
-
- - name: Setup problem matchers for PHP
- run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
-
- - name: Setup problem matchers for PHPUnit
- run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
-
- - name: Set git to use LF
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
-
- - uses: actions/checkout@v4
-
- - name: Get composer cache directory
- run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
-
- - name: Cache composer dependencies
- uses: actions/cache@v4
- with:
- path: $COMPOSER_CACHE
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
- restore-keys: ${{ runner.os }}-composer-
-
- - name: Install Composer dependencies
- run: composer install --no-progress --prefer-dist --optimize-autoloader
-
- - name: Run unit tests with coverage
- if: ${{ matrix.php-versions == '8.3' }}
- run: vendor/bin/phpunit
-
- - name: Run unit tests (no coverage)
- if: ${{ matrix.php-versions != '8.3' }}
- run: vendor/bin/phpunit --no-coverage
-
- - name: Save coverage data
- if: ${{ matrix.php-versions == '8.3' }}
- uses: actions/upload-artifact@v4
- with:
- name: coverage-data
- path: ${{ github.workspace }}/build
-
- unit-tests-windows:
- name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
- runs-on: ${{ matrix.operating-system }}
- needs: [linter, quality, security]
- strategy:
- fail-fast: true
- matrix:
- operating-system: [windows-latest]
- php-versions: ['8.1', '8.2', '8.3']
-
- steps:
- - name: Setup PHP, with composer and extensions
- # https://github.com/shivammathur/setup-php
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: ctype, date, dom, fileinfo, filter, hash, intl, mbstring, openssl, pcre, posix, spl, xml
- tools: composer
- ini-values: error_reporting=E_ALL
- coverage: none
-
- - name: Setup problem matchers for PHP
- run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
-
- - name: Setup problem matchers for PHPUnit
- run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
-
- - name: Set git to use LF
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
-
- - uses: actions/checkout@v4
-
- - name: Get composer cache directory
- run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$env:GITHUB_ENV"
-
- - name: Cache composer dependencies
- uses: actions/cache@v4
- with:
- path: $COMPOSER_CACHE
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
- restore-keys: ${{ runner.os }}-composer-
-
- - name: Install Composer dependencies
- run: composer install --no-progress --prefer-dist --optimize-autoloader --ignore-platform-req=ext-posix
-
- - name: Run unit tests
- run: vendor/bin/phpunit --no-coverage
-
coverage:
name: Code coverage
runs-on: [ubuntu-latest]
diff --git a/composer.json b/composer.json
index 264db31..368be65 100644
--- a/composer.json
+++ b/composer.json
@@ -36,11 +36,11 @@
"require": {
"php": "^8.1",
- "dapphp/radius": "^3.0.0",
- "simplesamlphp/simplesamlphp": "^2.1"
+ "dapphp/radius": "~3.0.0",
+ "simplesamlphp/simplesamlphp": "~2.4.0"
},
"require-dev": {
- "simplesamlphp/simplesamlphp-test-framework": "^1.5"
+ "simplesamlphp/simplesamlphp-test-framework": "~1.9.2"
},
"support": {
"issues": "https://github.com/tvdijen/simplesamlphp-module-radius/issues",
diff --git a/psalm-dev.xml b/psalm-dev.xml
index 6116331..95c5632 100644
--- a/psalm-dev.xml
+++ b/psalm-dev.xml
@@ -15,13 +15,4 @@
-
-
-
-
-
-
-
-
-
diff --git a/tools/linters/.yaml-lint.yml b/tools/linters/.yaml-lint.yml
new file mode 100644
index 0000000..630095a
--- /dev/null
+++ b/tools/linters/.yaml-lint.yml
@@ -0,0 +1,7 @@
+---
+
+extends: default
+
+rules:
+ line-length:
+ max: 120