From 3c7580a6baa760886e6543ffb38eb6c8183276ae Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 3 Mar 2023 18:55:20 +0100 Subject: [PATCH] Implement #194: remove `latest` composer deps from default generated pipelines This change removes `latest` from default composer dependencies in the generated CI matrix. The rationale is that `latest` dependencies tend to break our builds, and we usually run @renovate-bot or @dependabot on our repositories, keeping both `composer.json` and `composer.lock` fairly updated. Because of this kind of disciplined approach, we can assume that `latest` dependencies are already regularly tested by refreshing `composer.lock` regularly, and further testing with explicit `composer update` is considered risky, because it moves into unexplored land, breaking builds that are otherwise quite stable. We also don't want to break builds by contributors, or builds that upgrade perfectly safe to upgrade dependencies, just because a specific `latest` upstream dependency broke, and we didn't really touch it. The final objective is that CI can break, but only in commits that change `composer.json` and `composer.lock`, and those are handled every day by automation. Therefore, the default testing approach will cover `lowest` and `locked` dependencies, which both move much less than `latest`, and don't cause instability. --- README.md | 11 +++++++++- laminas-ci.schema.json | 10 +++++----- src/config/app.ts | 20 ++++--------------- tests/code-check-codeception-dist/matrix.json | 4 ++-- .../code-check-codeception-nodist/matrix.json | 4 ++-- .../matrix.json | 4 ++-- .../.laminas-ci.json | 3 --- .../.laminas-ci.json | 3 --- tests/code-check-infection-dist/matrix.json | 4 ++-- tests/code-check-infection-nodist/matrix.json | 4 ++-- .../matrix.json | 4 ++-- .../matrix.json | 4 ++-- tests/code-check-phpbench/matrix.json | 4 ++-- tests/code-check-phpcs-dist/matrix.json | 4 ++-- tests/code-check-phpcs-nodist/matrix.json | 4 ++-- .../matrix.json | 4 ++-- tests/code-check-phpcsfixer-php/matrix.json | 4 ++-- .../matrix.json | 6 ------ tests/code-check-phpunit-dist/matrix.json | 6 ------ tests/code-check-phpunit-nodist/matrix.json | 6 ------ tests/code-check-psalm-dist/matrix.json | 4 ++-- tests/code-check-psalm-nodist/matrix.json | 4 ++-- .../matrix.json | 6 ------ .../matrix.json | 4 ++-- .../matrix.json | 4 ++-- .../.laminas-ci.json | 12 +++++++++++ .../composer.json | 5 +++++ .../matrix.json | 10 ++++++++++ .../matrix.json | 6 ------ .../matrix.json | 8 ++++---- tests/doc-linting-doc-book/matrix.json | 4 ++-- tests/doc-linting-docs-book/matrix.json | 4 ++-- tests/doc-linting-mkdocs/matrix.json | 4 ++-- .../extensions-from-composer-json/matrix.json | 4 ++-- tests/php-ini-from-configuration/matrix.json | 4 ++-- 35 files changed, 92 insertions(+), 104 deletions(-) create mode 100644 tests/configuration-explicit-job-latest-dependency-set/.laminas-ci.json create mode 100644 tests/configuration-explicit-job-latest-dependency-set/composer.json create mode 100644 tests/configuration-explicit-job-latest-dependency-set/matrix.json diff --git a/README.md b/README.md index cdcaf7ac..f048507c 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,15 @@ The "job" element will have the following elements, but is not restricted to the } ``` +Note: Configuring jobs to run with `latest` composer dependencies is not endorsed. + The default generated matrix will contain entries for `lowest` and `locked` dependencies. + This action operates under the assumption that you do your due diligence, and keep `composer.json` + and `composer.lock` updated. + By operating on locked dependencies, you will be able to pinpoint the exact dependency + change that caused a test regression: + We endorse regularly updating dependencies with automation like [renovate](https://github.com/renovatebot) or + [dependabot](https://github.com/dependabot). + ## Configuration The package can include a configuration file in its root, `.laminas-ci.json`, which can provide the following: @@ -206,7 +215,7 @@ The easiest way to exclude a single job is via the `name` parameter: { "exclude": [ { - "name": "PHPUnit on PHP 8.0 with latest dependencies" + "name": "PHPUnit on PHP 8.0 with lowest dependencies" } ] } diff --git a/laminas-ci.schema.json b/laminas-ci.schema.json index 5cf3736d..930d34a5 100644 --- a/laminas-ci.schema.json +++ b/laminas-ci.schema.json @@ -24,7 +24,7 @@ ], "exclude": [ { - "name": "Codeception [8.2, latest]" + "name": "Codeception [8.2, lowest]" } ], "ignore_php_platform_requirements": { @@ -281,7 +281,7 @@ "examples": [ [ { - "name": "Codeception [8.2, latest]" + "name": "Codeception [8.2, lowest]" } ] ], @@ -290,7 +290,7 @@ "title": "The job description to be excluded", "examples": [ { - "name": "Codeception [8.2, latest]" + "name": "Codeception [8.2, lowest]" } ], "required": [ @@ -303,7 +303,7 @@ "description": "The name of the job to be excluded. Must be an exact match.", "minLength": 1, "examples": [ - "Codeception [8.2, latest]" + "Codeception [8.2, lowest]" ] } }, @@ -368,7 +368,7 @@ "type": "string", "enum": ["latest", "lowest", "locked", "*"], "title": "The composer dependencies to be used", - "description": "The composer dependencies to be used. If the wildcard `*` is passed, a list of checks is created containing each `lowest` and `latest` composer dependencies.", + "description": "The composer dependencies to be used. If the wildcard `*` is passed, a list of checks is created containing each `lowest` and `locked` composer dependencies.", "default": "locked" }, "command": { diff --git a/src/config/app.ts b/src/config/app.ts index 18735767..e277c52a 100644 --- a/src/config/app.ts +++ b/src/config/app.ts @@ -13,7 +13,6 @@ export const ACTION = 'laminas/laminas-continuous-integration-action@v1'; export enum ComposerDependencySet { LOWEST = 'lowest', LOCKED = 'locked', - LATEST = 'latest', } export function gatherVersions(composerJson: ComposerJson): InstallablePhpVersionType[] { @@ -111,10 +110,10 @@ function discoverPhpVersionsForJob(job: JobDefinitionFromFile, config: Config): function discoverComposerDependencySetsForJob(job: JobDefinitionFromFile, config: Config): ComposerDependencySet[] { const dependencySetFromConfig = job.dependencies - ?? (config.lockedDependenciesExists ? ComposerDependencySet.LOCKED : ComposerDependencySet.LATEST); + ?? (config.lockedDependenciesExists ? ComposerDependencySet.LOCKED : ComposerDependencySet.LOWEST); if (isAnyComposerDependencySet(dependencySetFromConfig)) { - return [ ComposerDependencySet.LOWEST, ComposerDependencySet.LATEST ]; + return [ ComposerDependencySet.LOWEST ]; } return [ dependencySetFromConfig ]; @@ -295,7 +294,7 @@ function createJobsForTool( if (tool.executionType === ToolExecutionType.STATIC) { const lockedOrLatestDependencySet: ComposerDependencySet = config.lockedDependenciesExists ? ComposerDependencySet.LOCKED - : ComposerDependencySet.LATEST; + : ComposerDependencySet.LOWEST; return [ createJob( @@ -343,18 +342,7 @@ function createJobsForTool( config.ignorePhpPlatformRequirements[version] ?? false, config.additionalComposerArguments, beforeScript, - ), tool) as JobFromTool, - - createJob(tool.name, createJobDefinition( - tool.command, - version, - ComposerDependencySet.LATEST, - config.phpExtensions, - config.phpIni, - config.ignorePhpPlatformRequirements[version] ?? false, - config.additionalComposerArguments, - beforeScript, - ), tool) as JobFromTool, + ), tool) as JobFromTool )); } diff --git a/tests/code-check-codeception-dist/matrix.json b/tests/code-check-codeception-dist/matrix.json index edde3572..7a0eba04 100644 --- a/tests/code-check-codeception-dist/matrix.json +++ b/tests/code-check-codeception-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Codeception [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Codeception [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-codeception-nodist/matrix.json b/tests/code-check-codeception-nodist/matrix.json index edde3572..7a0eba04 100644 --- a/tests/code-check-codeception-nodist/matrix.json +++ b/tests/code-check-codeception-nodist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Codeception [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Codeception [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-composer-require-checker/matrix.json b/tests/code-check-composer-require-checker/matrix.json index ae841dbb..e2ec9f04 100644 --- a/tests/code-check-composer-require-checker/matrix.json +++ b/tests/code-check-composer-require-checker/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Composer Require Checker [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/composer-require-checker check --config-file=composer-require-checker.json -n -v composer.json\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Composer Require Checker [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/composer-require-checker check --config-file=composer-require-checker.json -n -v composer.json\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-deprecated-exclusion-via-config/.laminas-ci.json b/tests/code-check-deprecated-exclusion-via-config/.laminas-ci.json index c7a1825e..89e5c2c2 100644 --- a/tests/code-check-deprecated-exclusion-via-config/.laminas-ci.json +++ b/tests/code-check-deprecated-exclusion-via-config/.laminas-ci.json @@ -6,9 +6,6 @@ }, { "name": "PHPUnit on PHP 8.2 with locked dependencies" - }, - { - "name": "PHPUnit on PHP 8.2 with latest dependencies" } ] } diff --git a/tests/code-check-exclusion-via-config/.laminas-ci.json b/tests/code-check-exclusion-via-config/.laminas-ci.json index 491e60be..549d4bb9 100644 --- a/tests/code-check-exclusion-via-config/.laminas-ci.json +++ b/tests/code-check-exclusion-via-config/.laminas-ci.json @@ -6,9 +6,6 @@ }, { "name": "PHPUnit [8.2, locked]" - }, - { - "name": "PHPUnit [8.2, latest]" } ] } diff --git a/tests/code-check-infection-dist/matrix.json b/tests/code-check-infection-dist/matrix.json index 27f64507..0376ef6a 100644 --- a/tests/code-check-infection-dist/matrix.json +++ b/tests/code-check-infection-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Infection [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/infection\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Infection [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/infection\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-infection-nodist/matrix.json b/tests/code-check-infection-nodist/matrix.json index 27f64507..0376ef6a 100644 --- a/tests/code-check-infection-nodist/matrix.json +++ b/tests/code-check-infection-nodist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Infection [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/infection\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Infection [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/infection\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json b/tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json index 626bc0d5..8b13fc29 100644 --- a/tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json +++ b/tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Infection [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Infection [8.1, lowest]", + "job": "{\"command\":\"./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json b/tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json index 626bc0d5..8b13fc29 100644 --- a/tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json +++ b/tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Infection [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Infection [8.1, lowest]", + "job": "{\"command\":\"./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpbench/matrix.json b/tests/code-check-phpbench/matrix.json index 2d7b8fba..a5ff5399 100644 --- a/tests/code-check-phpbench/matrix.json +++ b/tests/code-check-phpbench/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "PHPBench [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "PHPBench [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpcs-dist/matrix.json b/tests/code-check-phpcs-dist/matrix.json index 3d1339a6..81f668f7 100644 --- a/tests/code-check-phpcs-dist/matrix.json +++ b/tests/code-check-phpcs-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "PHPCodeSniffer [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/squizlabs/php_codesniffer/phpcs.xsd phpcs.xml.dist\"]}", + "name": "PHPCodeSniffer [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/squizlabs/php_codesniffer/phpcs.xsd phpcs.xml.dist\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpcs-nodist/matrix.json b/tests/code-check-phpcs-nodist/matrix.json index 20936564..ab9f3053 100644 --- a/tests/code-check-phpcs-nodist/matrix.json +++ b/tests/code-check-phpcs-nodist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "PHPCodeSniffer [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/squizlabs/php_codesniffer/phpcs.xsd phpcs.xml\"]}", + "name": "PHPCodeSniffer [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/squizlabs/php_codesniffer/phpcs.xsd phpcs.xml\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpcsfixer-php-dist/matrix.json b/tests/code-check-phpcsfixer-php-dist/matrix.json index db5d276a..69f42993 100644 --- a/tests/code-check-phpcsfixer-php-dist/matrix.json +++ b/tests/code-check-phpcsfixer-php-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "PHP CS Fixer [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/php-cs-fixer fix -v --diff --dry-run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "PHP CS Fixer [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/php-cs-fixer fix -v --diff --dry-run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpcsfixer-php/matrix.json b/tests/code-check-phpcsfixer-php/matrix.json index db5d276a..69f42993 100644 --- a/tests/code-check-phpcsfixer-php/matrix.json +++ b/tests/code-check-phpcsfixer-php/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "PHP CS Fixer [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/php-cs-fixer fix -v --diff --dry-run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "PHP CS Fixer [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/php-cs-fixer fix -v --diff --dry-run\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-phpunit-dist-due-to-laminas-ci-json-change/matrix.json b/tests/code-check-phpunit-dist-due-to-laminas-ci-json-change/matrix.json index f1137dd9..ce204325 100644 --- a/tests/code-check-phpunit-dist-due-to-laminas-ci-json-change/matrix.json +++ b/tests/code-check-phpunit-dist-due-to-laminas-ci-json-change/matrix.json @@ -11,12 +11,6 @@ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" - }, - { - "name": "PHPUnit [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", - "operatingSystem": "ubuntu-latest", - "action": "laminas/laminas-continuous-integration-action@v1" } ] } diff --git a/tests/code-check-phpunit-dist/matrix.json b/tests/code-check-phpunit-dist/matrix.json index f1137dd9..ce204325 100644 --- a/tests/code-check-phpunit-dist/matrix.json +++ b/tests/code-check-phpunit-dist/matrix.json @@ -11,12 +11,6 @@ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" - }, - { - "name": "PHPUnit [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", - "operatingSystem": "ubuntu-latest", - "action": "laminas/laminas-continuous-integration-action@v1" } ] } diff --git a/tests/code-check-phpunit-nodist/matrix.json b/tests/code-check-phpunit-nodist/matrix.json index 7d2a1c8d..ea3d3ee2 100644 --- a/tests/code-check-phpunit-nodist/matrix.json +++ b/tests/code-check-phpunit-nodist/matrix.json @@ -5,12 +5,6 @@ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" - }, - { - "name": "PHPUnit [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml\"]}", - "operatingSystem": "ubuntu-latest", - "action": "laminas/laminas-continuous-integration-action@v1" } ] } diff --git a/tests/code-check-psalm-dist/matrix.json b/tests/code-check-psalm-dist/matrix.json index d3dad025..86018f3e 100644 --- a/tests/code-check-psalm-dist/matrix.json +++ b/tests/code-check-psalm-dist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Psalm [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/vimeo/psalm/config.xsd psalm.xml.dist\"]}", + "name": "Psalm [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/vimeo/psalm/config.xsd psalm.xml.dist\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-check-psalm-nodist/matrix.json b/tests/code-check-psalm-nodist/matrix.json index 291e1940..f5becb1c 100644 --- a/tests/code-check-psalm-nodist/matrix.json +++ b/tests/code-check-psalm-nodist/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Psalm [8.2, latest]", - "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/vimeo/psalm/config.xsd psalm.xml\"]}", + "name": "Psalm [8.2, lowest]", + "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/vimeo/psalm/config.xsd psalm.xml\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/code-checks-without-linting-due-to-diff/matrix.json b/tests/code-checks-without-linting-due-to-diff/matrix.json index f1137dd9..ce204325 100644 --- a/tests/code-checks-without-linting-due-to-diff/matrix.json +++ b/tests/code-checks-without-linting-due-to-diff/matrix.json @@ -11,12 +11,6 @@ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" - }, - { - "name": "PHPUnit [8.1, latest]", - "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[\"xmllint --schema vendor/phpunit/phpunit/phpunit.xsd phpunit.xml.dist\"]}", - "operatingSystem": "ubuntu-latest", - "action": "laminas/laminas-continuous-integration-action@v1" } ] } diff --git a/tests/configuration-additional-job-latest-php-version/matrix.json b/tests/configuration-additional-job-latest-php-version/matrix.json index 5b260ab2..a14a2bca 100644 --- a/tests/configuration-additional-job-latest-php-version/matrix.json +++ b/tests/configuration-additional-job-latest-php-version/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Whatever Check [8.1, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Whatever Check [8.1, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/configuration-additional-job-lowest-php-version/matrix.json b/tests/configuration-additional-job-lowest-php-version/matrix.json index f3129c11..ac67fa97 100644 --- a/tests/configuration-additional-job-lowest-php-version/matrix.json +++ b/tests/configuration-additional-job-lowest-php-version/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Whatever Check [8.0, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.0\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Whatever Check [8.0, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.0\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/configuration-explicit-job-latest-dependency-set/.laminas-ci.json b/tests/configuration-explicit-job-latest-dependency-set/.laminas-ci.json new file mode 100644 index 00000000..d6a34c61 --- /dev/null +++ b/tests/configuration-explicit-job-latest-dependency-set/.laminas-ci.json @@ -0,0 +1,12 @@ +{ + "checks": [ + { + "name": "Whatever Check", + "job": { + "php": "8.1", + "dependencies": "latest", + "command": "test" + } + } + ] +} diff --git a/tests/configuration-explicit-job-latest-dependency-set/composer.json b/tests/configuration-explicit-job-latest-dependency-set/composer.json new file mode 100644 index 00000000..fb4d5cbe --- /dev/null +++ b/tests/configuration-explicit-job-latest-dependency-set/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "php": "~7.4.0 || ~8.0.0" + } +} diff --git a/tests/configuration-explicit-job-latest-dependency-set/matrix.json b/tests/configuration-explicit-job-latest-dependency-set/matrix.json new file mode 100644 index 00000000..5b260ab2 --- /dev/null +++ b/tests/configuration-explicit-job-latest-dependency-set/matrix.json @@ -0,0 +1,10 @@ +{ + "include": [ + { + "name": "Whatever Check [8.1, latest]", + "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "operatingSystem": "ubuntu-latest", + "action": "laminas/laminas-continuous-integration-action@v1" + } + ] +} diff --git a/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json b/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json index 124ed3cc..a14a2bca 100644 --- a/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json +++ b/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json @@ -5,12 +5,6 @@ "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" - }, - { - "name": "Whatever Check [8.1, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", - "operatingSystem": "ubuntu-latest", - "action": "laminas/laminas-continuous-integration-action@v1" } ] } diff --git a/tests/configuration-explicit-job-wildcard-php/matrix.json b/tests/configuration-explicit-job-wildcard-php/matrix.json index 07ad15cb..f0e22cd8 100644 --- a/tests/configuration-explicit-job-wildcard-php/matrix.json +++ b/tests/configuration-explicit-job-wildcard-php/matrix.json @@ -1,14 +1,14 @@ { "include": [ { - "name": "Whatever Check [8.0, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.0\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Whatever Check [8.0, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.0\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" }, { - "name": "Whatever Check [8.1, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Whatever Check [8.1, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/doc-linting-doc-book/matrix.json b/tests/doc-linting-doc-book/matrix.json index 98a032bd..7d782f7d 100644 --- a/tests/doc-linting-doc-book/matrix.json +++ b/tests/doc-linting-doc-book/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Documentation Linting [8.2, latest]", - "job": "{\"command\":\"markdownlint doc/book/**/*.md\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Documentation Linting [8.2, lowest]", + "job": "{\"command\":\"markdownlint doc/book/**/*.md\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/doc-linting-docs-book/matrix.json b/tests/doc-linting-docs-book/matrix.json index 5778cec9..fc66234c 100644 --- a/tests/doc-linting-docs-book/matrix.json +++ b/tests/doc-linting-docs-book/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Documentation Linting [8.2, latest]", - "job": "{\"command\":\"markdownlint docs/book/**/*.md\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "Documentation Linting [8.2, lowest]", + "job": "{\"command\":\"markdownlint docs/book/**/*.md\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/doc-linting-mkdocs/matrix.json b/tests/doc-linting-mkdocs/matrix.json index a53e040c..5c2a701a 100644 --- a/tests/doc-linting-mkdocs/matrix.json +++ b/tests/doc-linting-mkdocs/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "MkDocs Linting [8.2, latest]", - "job": "{\"command\":\"yamllint -d relaxed --no-warnings mkdocs.yml\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", + "name": "MkDocs Linting [8.2, lowest]", + "job": "{\"command\":\"yamllint -d relaxed --no-warnings mkdocs.yml\",\"php\":\"8.2\",\"extensions\":[],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[],\"before_script\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/extensions-from-composer-json/matrix.json b/tests/extensions-from-composer-json/matrix.json index d46bb4b2..fd710f7a 100644 --- a/tests/extensions-from-composer-json/matrix.json +++ b/tests/extensions-from-composer-json/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Some Job [8.2, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.2\",\"extensions\":[\"mbstring\",\"json\"],\"ini\":[],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Some Job [8.2, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.2\",\"extensions\":[\"mbstring\",\"json\"],\"ini\":[],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" } diff --git a/tests/php-ini-from-configuration/matrix.json b/tests/php-ini-from-configuration/matrix.json index ee329009..66376907 100644 --- a/tests/php-ini-from-configuration/matrix.json +++ b/tests/php-ini-from-configuration/matrix.json @@ -1,8 +1,8 @@ { "include": [ { - "name": "Some Job [8.2, latest]", - "job": "{\"command\":\"test\",\"php\":\"8.2\",\"extensions\":[\"mbstring\",\"json\"],\"ini\":[\"error_reporting=E_ALL\"],\"dependencies\":\"latest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", + "name": "Some Job [8.2, lowest]", + "job": "{\"command\":\"test\",\"php\":\"8.2\",\"extensions\":[\"mbstring\",\"json\"],\"ini\":[\"error_reporting=E_ALL\"],\"dependencies\":\"lowest\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}", "operatingSystem": "ubuntu-latest", "action": "laminas/laminas-continuous-integration-action@v1" }