diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index abfb19e..045550a 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -14,34 +14,145 @@ 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]
+ 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
runs-on: [ubuntu-latest]
+ needs: [unit-tests-linux]
steps:
- name: Setup PHP, with composer and extensions
@@ -50,7 +161,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
@@ -110,6 +221,8 @@ jobs:
security:
name: Security checks
runs-on: [ubuntu-latest]
+ needs: [unit-tests-linux]
+
steps:
- name: Setup PHP, with composer and extensions
# https://github.com/shivammathur/setup-php
@@ -148,118 +261,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/codecov.yml b/codecov.yml
index f9d26c6..019c39c 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -1,3 +1,5 @@
+---
+
coverage:
status:
project:
diff --git a/composer.json b/composer.json
index ba0b538..7a47704 100644
--- a/composer.json
+++ b/composer.json
@@ -42,6 +42,7 @@
"php": "^8.1",
"simplesamlphp/assert": "^1.1",
"simplesamlphp/composer-module-installer": "^1.3.4",
+ "simplesamlphp/saml2": "^5.0@dev",
"simplesamlphp/simplesamlphp": "^2.2",
"symfony/http-foundation": "^6.4"
},
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/routing/routes/routes.yml b/routing/routes/routes.yml
index 9949241..0780ce0 100644
--- a/routing/routes/routes.yml
+++ b/routing/routes/routes.yml
@@ -1,9 +1,15 @@
+---
+
cdc-resume:
- path: /resume
- defaults: { _controller: 'SimpleSAML\Module\cdc\Controller\CDC::resume' }
- methods: [GET, POST]
+ path: /resume
+ defaults: {
+ _controller: 'SimpleSAML\Module\cdc\Controller\CDC::resume'
+ }
+ methods: [GET, POST]
cdc-server:
- path: /server
- defaults: { _controller: 'SimpleSAML\Module\cdc\Controller\CDC::server' }
- methods: [GET]
+ path: /server
+ defaults: {
+ _controller: 'SimpleSAML\Module\cdc\Controller\CDC::server'
+ }
+ methods: [GET]
diff --git a/tests/src/Controller/CDCTest.php b/tests/src/Controller/CDCTest.php
index 72f8b58..0f976c7 100644
--- a/tests/src/Controller/CDCTest.php
+++ b/tests/src/Controller/CDCTest.php
@@ -17,7 +17,7 @@
* Set of tests for the controllers in the "cdc" module.
*/
#[CoversClass(Controller\CDC::class)]
-class CDCTest extends TestCase
+final class CDCTest extends TestCase
{
/** @var \SimpleSAML\Configuration */
protected static Configuration $config;
@@ -182,7 +182,7 @@ public function testResumeDomain(): void
// $this->assertTrue($response->isSuccessful());
// $this->assertInstanceOf(RunnableResponse::class, $response);
- $response = $c->resume($request);
+ $c->resume($request);
}
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