From a78f6519b1422a21c8db2ccd5d37406ac57b603a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 24 Sep 2021 16:38:14 +0200
Subject: [PATCH 01/22] feature: introduce CI
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 31 ++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 .github/workflows/continuous-integration.yml
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
new file mode 100644
index 00000000..f4e449bd
--- /dev/null
+++ b/.github/workflows/continuous-integration.yml
@@ -0,0 +1,31 @@
+name: "Continuous Integration"
+
+on:
+ pull_request:
+ push:
+ branches:
+ - 'refs/pull/*'
+
+jobs:
+ matrix:
+ name: Generate job matrix
+ runs-on: ubuntu-latest
+ outputs:
+ matrix: ${{ steps.matrix.outputs.matrix }}
+ steps:
+ - name: Gather CI configuration
+ id: matrix
+ uses: laminas/laminas-ci-matrix-action@v1
+
+ qa:
+ name: QA Checks
+ needs: [matrix]
+ runs-on: ${{ matrix.operatingSystem }}
+ strategy:
+ fail-fast: false
+ matrix: ${{ fromJSON(needs.matrix.outputs.matrix) }}
+ steps:
+ - name: ${{ matrix.name }}
+ uses: laminas/laminas-continuous-integration-action@v1
+ with:
+ job: ${{ matrix.job }}
From 57edf152a660ab3708964ffb895418c4576dd706 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 24 Sep 2021 16:49:46 +0200
Subject: [PATCH 02/22] qa: introduce additional checks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.laminas-ci.json | 10 ++++++++++
tests/empty-project/.gitkeep | 0
2 files changed, 10 insertions(+)
create mode 100644 .laminas-ci.json
create mode 100644 tests/empty-project/.gitkeep
diff --git a/.laminas-ci.json b/.laminas-ci.json
new file mode 100644
index 00000000..3cfc5fd9
--- /dev/null
+++ b/.laminas-ci.json
@@ -0,0 +1,10 @@
+{
+ "additional_checks": [
+ {
+ "name": "Run matrix on every test project",
+ "job": {
+ "command": "for directory tests/*; do cd $directory; node ../../index.js || exit 1; cd ../.."
+ }
+ }
+ ]
+}
diff --git a/tests/empty-project/.gitkeep b/tests/empty-project/.gitkeep
new file mode 100644
index 00000000..e69de29b
From 2abcb4efcaa6292aec9f967faa8840c4b6924d91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 24 Mar 2022 23:57:42 +0100
Subject: [PATCH 03/22] feature: modify continuous integration to iterate over
test projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 39 ++++++++++++++++----
tests/empty-project/.gitkeep | 0
tests/empty-project/matrix.json | 10 +++++
3 files changed, 42 insertions(+), 7 deletions(-)
delete mode 100644 tests/empty-project/.gitkeep
create mode 100644 tests/empty-project/matrix.json
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index f4e449bd..d2aad866 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -13,19 +13,44 @@ jobs:
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- - name: Gather CI configuration
+ - name: Gather integration test directory names
id: matrix
- uses: laminas/laminas-ci-matrix-action@v1
+ run: cd tests; echo "::set-output matrix=\\[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"\\]"
qa:
name: QA Checks
needs: [matrix]
- runs-on: ${{ matrix.operatingSystem }}
+ runs-on: "ubuntu-latest"
strategy:
fail-fast: false
- matrix: ${{ fromJSON(needs.matrix.outputs.matrix) }}
+ matrix:
+ projectName: ${{ fromJSON(needs.matrix.outputs.matrix) }}
steps:
- - name: ${{ matrix.name }}
- uses: laminas/laminas-continuous-integration-action@v1
+ - name: Setting up nodeJS
+ uses: actions/setup-node@v2
with:
- job: ${{ matrix.job }}
+ node-version: 17
+ - name: Checkout sourcecode
+ uses: actions/checkout@v3
+ - name: Install dependencies
+ run: npm ci
+ - name: Prepare action files
+ run: mkdir /action; cp composer.schema.json /action; cp laminas-ci.schema.json /action
+ - name: "Generating matrix for project: ${{ matrix.projectName }}"
+ id: matrix_generation
+ env:
+ PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
+ run: cd tests/${PROJECT_NAME_TO_TEST} && node ../../index.js $(test -r diff && cat diff || echo -n "")
+ - name: Minify matrix from test directory
+ uses: sergeysova/jq-action@v2
+ id: expected_matrix
+ env:
+ PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
+ with:
+ cmd: 'jq -c . < tests/${PROJECT_NAME_TO_TEST}/matrix.json'
+ - name: "verify output of generated matrix for project: empty-project"
+ env:
+ GENERATED_MATRIX: ${{ steps.matrix_generation.outputs.matrix }}
+ EXPECTED_MATRIX: ${{ steps.expected_matrix.outputs.value }}
+ PROJECT_NAME_TO_TEST: "empty-project"
+ run: diff --color <(echo ${EXPECTED_MATRIX}) <(echo ${GENERATED_MATRIX})
diff --git a/tests/empty-project/.gitkeep b/tests/empty-project/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/tests/empty-project/matrix.json b/tests/empty-project/matrix.json
new file mode 100644
index 00000000..f5fa0997
--- /dev/null
+++ b/tests/empty-project/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "No checks",
+ "job": "{\"command\":\"\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[],\"dependencies\":\"locked\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}",
+ "operatingSystem": "ubuntu-latest",
+ "action": "laminas/laminas-continuous-integration-action@v1"
+ }
+ ]
+}
From 69f7cd90e379c8cc519ac63412ae2f9e5005f5ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 24 Mar 2022 23:58:49 +0100
Subject: [PATCH 04/22] bugfix: checkout code before generating the matrix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index d2aad866..3e2a11fd 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -13,6 +13,8 @@ jobs:
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
+ - name: Checkout sourcecode
+ uses: actions/checkout@v3
- name: Gather integration test directory names
id: matrix
run: cd tests; echo "::set-output matrix=\\[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"\\]"
From 1b31ab969cca6f8c656ef350617bd884668ac355 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 25 Mar 2022 00:01:32 +0100
Subject: [PATCH 05/22] bugfix: return JSON array as matrix output
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 3e2a11fd..129f51d4 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v3
- name: Gather integration test directory names
id: matrix
- run: cd tests; echo "::set-output matrix=\\[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"\\]"
+ run: cd tests; echo "::set-output matrix=[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
qa:
name: QA Checks
From 7e95c3197dd1c4fdad80e7a2c771895d18569f13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 25 Mar 2022 00:03:13 +0100
Subject: [PATCH 06/22] bugfix: remove `fromJSON` from matrix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 129f51d4..e46d38ca 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -26,7 +26,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- projectName: ${{ fromJSON(needs.matrix.outputs.matrix) }}
+ projectName: ${{ needs.matrix.outputs.matrix }}
steps:
- name: Setting up nodeJS
uses: actions/setup-node@v2
From b3d7262f4b286046c76f3100216e8ac3eb757382 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 25 Mar 2022 00:05:54 +0100
Subject: [PATCH 07/22] bugfix: use proper `set-output` notation to provide
JSON array
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index e46d38ca..a9e7f785 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v3
- name: Gather integration test directory names
id: matrix
- run: cd tests; echo "::set-output matrix=[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
+ run: cd tests; echo "::set-output:: matrix=[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
qa:
name: QA Checks
@@ -26,7 +26,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- projectName: ${{ needs.matrix.outputs.matrix }}
+ projectName: ${{ fromJSON(needs.matrix.outputs.matrix) }}
steps:
- name: Setting up nodeJS
uses: actions/setup-node@v2
From e9a23c4034b2a48d94ea3b392745bbd383b6e413 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Fri, 25 Mar 2022 00:08:13 +0100
Subject: [PATCH 08/22] bugfix: use alternative notation to output variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index a9e7f785..1e5c4ed7 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v3
- name: Gather integration test directory names
id: matrix
- run: cd tests; echo "::set-output:: matrix=[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
+ run: cd tests; echo "::set-output name=matrix::[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
qa:
name: QA Checks
From 263af90ac72eb6a1f246638e6e0ff7d031f6f972 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 00:51:44 +0200
Subject: [PATCH 09/22] qa: add some project structures for integration testing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.../.laminas-ci.json | 3 ++
.../codeception.yml.dist | 0
tests/code-check-codeception-dist/matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
.../codeception.yml | 0
.../code-check-codeception-nodist/matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
.../composer-require-checker.json | 1 +
.../matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
tests/code-check-infection-dist/composer.json | 1 +
.../infection.json.dist | 0
tests/code-check-infection-dist/matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
.../code-check-infection-nodist/composer.json | 1 +
.../infection.json | 0
tests/code-check-infection-nodist/matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
.../composer.json | 8 +++
.../infection.json.dist | 0
.../matrix.json | 10 ++++
.../.laminas-ci.json | 3 ++
.../composer.json | 8 +++
.../infection.json | 0
.../matrix.json | 10 ++++
tests/code-check-phpbench/.laminas-ci.json | 3 ++
tests/code-check-phpbench/matrix.json | 10 ++++
tests/code-check-phpbench/phpbench.json | 1 +
tests/code-check-phpcs-dist/.laminas-ci.json | 3 ++
tests/code-check-phpcs-dist/matrix.json | 10 ++++
tests/code-check-phpcs-dist/phpcs.xml.dist | 2 +
.../code-check-phpcs-nodist/.laminas-ci.json | 3 ++
tests/code-check-phpcs-nodist/matrix.json | 10 ++++
tests/code-check-phpcs-nodist/phpcs.xml | 2 +
.../code-check-phpunit-dist/.laminas-ci.json | 3 ++
tests/code-check-phpunit-dist/composer.json | 5 ++
tests/code-check-phpunit-dist/composer.lock | 2 +
tests/code-check-phpunit-dist/matrix.json | 22 ++++++++
.../code-check-phpunit-dist/phpunit.xml.dist | 2 +
.../.laminas-ci.json | 3 ++
tests/code-check-phpunit-nodist/composer.json | 5 ++
tests/code-check-phpunit-nodist/matrix.json | 16 ++++++
tests/code-check-phpunit-nodist/phpunit.xml | 2 +
tests/code-check-psalm-dist/.laminas-ci.json | 3 ++
tests/code-check-psalm-dist/matrix.json | 10 ++++
tests/code-check-psalm-dist/psalm.xml.dist | 2 +
.../code-check-psalm-nodist/.laminas-ci.json | 3 ++
tests/code-check-psalm-nodist/matrix.json | 10 ++++
tests/code-check-psalm-nodist/psalm.xml | 2 +
.../.laminas-ci.json | 11 ++++
.../composer.json | 5 ++
.../matrix.json | 10 ++++
.../.laminas-ci.json | 11 ++++
.../composer.json | 5 ++
.../matrix.json | 10 ++++
.../.laminas-ci.json | 12 +++++
.../composer.json | 5 ++
.../matrix.json | 16 ++++++
.../.laminas-ci.json | 11 ++++
.../composer.json | 5 ++
.../matrix.json | 52 +++++++++++++++++++
tests/doc-linting-doc-book/.laminas-ci.json | 3 ++
tests/doc-linting-doc-book/doc/book/.gitkeep | 0
tests/doc-linting-doc-book/matrix.json | 10 ++++
tests/doc-linting-docs-book/.laminas-ci.json | 3 ++
.../doc-linting-docs-book/docs/book/.gitkeep | 0
tests/doc-linting-docs-book/matrix.json | 10 ++++
tests/doc-linting-mkdocs/.laminas-ci.json | 3 ++
tests/doc-linting-mkdocs/matrix.json | 10 ++++
tests/doc-linting-mkdocs/mkdocs.yml | 0
.../.laminas-ci.json | 11 ++++
.../composer.json | 9 ++++
.../extensions-from-composer-json/matrix.json | 10 ++++
tests/no-checks/.laminas-ci.json | 3 ++
.../{empty-project => no-checks}/matrix.json | 0
.../.laminas-ci.json | 15 ++++++
.../php-ini-from-configuration/composer.json | 9 ++++
tests/php-ini-from-configuration/matrix.json | 10 ++++
78 files changed, 503 insertions(+)
create mode 100644 tests/code-check-codeception-dist/.laminas-ci.json
create mode 100644 tests/code-check-codeception-dist/codeception.yml.dist
create mode 100644 tests/code-check-codeception-dist/matrix.json
create mode 100644 tests/code-check-codeception-nodist/.laminas-ci.json
create mode 100644 tests/code-check-codeception-nodist/codeception.yml
create mode 100644 tests/code-check-codeception-nodist/matrix.json
create mode 100644 tests/code-check-composer-require-checker/.laminas-ci.json
create mode 100644 tests/code-check-composer-require-checker/composer-require-checker.json
create mode 100644 tests/code-check-composer-require-checker/matrix.json
create mode 100644 tests/code-check-infection-dist/.laminas-ci.json
create mode 100644 tests/code-check-infection-dist/composer.json
create mode 100644 tests/code-check-infection-dist/infection.json.dist
create mode 100644 tests/code-check-infection-dist/matrix.json
create mode 100644 tests/code-check-infection-nodist/.laminas-ci.json
create mode 100644 tests/code-check-infection-nodist/composer.json
create mode 100644 tests/code-check-infection-nodist/infection.json
create mode 100644 tests/code-check-infection-nodist/matrix.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-dist/.laminas-ci.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-dist/composer.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-dist/infection.json.dist
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-nodist/.laminas-ci.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-nodist/composer.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-nodist/infection.json
create mode 100644 tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json
create mode 100644 tests/code-check-phpbench/.laminas-ci.json
create mode 100644 tests/code-check-phpbench/matrix.json
create mode 100644 tests/code-check-phpbench/phpbench.json
create mode 100644 tests/code-check-phpcs-dist/.laminas-ci.json
create mode 100644 tests/code-check-phpcs-dist/matrix.json
create mode 100644 tests/code-check-phpcs-dist/phpcs.xml.dist
create mode 100644 tests/code-check-phpcs-nodist/.laminas-ci.json
create mode 100644 tests/code-check-phpcs-nodist/matrix.json
create mode 100644 tests/code-check-phpcs-nodist/phpcs.xml
create mode 100644 tests/code-check-phpunit-dist/.laminas-ci.json
create mode 100644 tests/code-check-phpunit-dist/composer.json
create mode 100644 tests/code-check-phpunit-dist/composer.lock
create mode 100644 tests/code-check-phpunit-dist/matrix.json
create mode 100644 tests/code-check-phpunit-dist/phpunit.xml.dist
create mode 100644 tests/code-check-phpunit-nodist/.laminas-ci.json
create mode 100644 tests/code-check-phpunit-nodist/composer.json
create mode 100644 tests/code-check-phpunit-nodist/matrix.json
create mode 100644 tests/code-check-phpunit-nodist/phpunit.xml
create mode 100644 tests/code-check-psalm-dist/.laminas-ci.json
create mode 100644 tests/code-check-psalm-dist/matrix.json
create mode 100644 tests/code-check-psalm-dist/psalm.xml.dist
create mode 100644 tests/code-check-psalm-nodist/.laminas-ci.json
create mode 100644 tests/code-check-psalm-nodist/matrix.json
create mode 100644 tests/code-check-psalm-nodist/psalm.xml
create mode 100644 tests/configuration-additional-job-latest-php-version/.laminas-ci.json
create mode 100644 tests/configuration-additional-job-latest-php-version/composer.json
create mode 100644 tests/configuration-additional-job-latest-php-version/matrix.json
create mode 100644 tests/configuration-additional-job-lowest-php-version/.laminas-ci.json
create mode 100644 tests/configuration-additional-job-lowest-php-version/composer.json
create mode 100644 tests/configuration-additional-job-lowest-php-version/matrix.json
create mode 100644 tests/configuration-explicit-job-wildcard-dependency-set/.laminas-ci.json
create mode 100644 tests/configuration-explicit-job-wildcard-dependency-set/composer.json
create mode 100644 tests/configuration-explicit-job-wildcard-dependency-set/matrix.json
create mode 100644 tests/configuration-explicit-job-wildcard-php/.laminas-ci.json
create mode 100644 tests/configuration-explicit-job-wildcard-php/composer.json
create mode 100644 tests/configuration-explicit-job-wildcard-php/matrix.json
create mode 100644 tests/doc-linting-doc-book/.laminas-ci.json
create mode 100644 tests/doc-linting-doc-book/doc/book/.gitkeep
create mode 100644 tests/doc-linting-doc-book/matrix.json
create mode 100644 tests/doc-linting-docs-book/.laminas-ci.json
create mode 100644 tests/doc-linting-docs-book/docs/book/.gitkeep
create mode 100644 tests/doc-linting-docs-book/matrix.json
create mode 100644 tests/doc-linting-mkdocs/.laminas-ci.json
create mode 100644 tests/doc-linting-mkdocs/matrix.json
create mode 100644 tests/doc-linting-mkdocs/mkdocs.yml
create mode 100644 tests/extensions-from-composer-json/.laminas-ci.json
create mode 100644 tests/extensions-from-composer-json/composer.json
create mode 100644 tests/extensions-from-composer-json/matrix.json
create mode 100644 tests/no-checks/.laminas-ci.json
rename tests/{empty-project => no-checks}/matrix.json (100%)
create mode 100644 tests/php-ini-from-configuration/.laminas-ci.json
create mode 100644 tests/php-ini-from-configuration/composer.json
create mode 100644 tests/php-ini-from-configuration/matrix.json
diff --git a/tests/code-check-codeception-dist/.laminas-ci.json b/tests/code-check-codeception-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-codeception-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-codeception-dist/codeception.yml.dist b/tests/code-check-codeception-dist/codeception.yml.dist
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/code-check-codeception-dist/matrix.json b/tests/code-check-codeception-dist/matrix.json
new file mode 100644
index 00000000..04dceca3
--- /dev/null
+++ b/tests/code-check-codeception-dist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/codecept run on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-codeception-nodist/.laminas-ci.json b/tests/code-check-codeception-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-codeception-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-codeception-nodist/codeception.yml b/tests/code-check-codeception-nodist/codeception.yml
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/code-check-codeception-nodist/matrix.json b/tests/code-check-codeception-nodist/matrix.json
new file mode 100644
index 00000000..04dceca3
--- /dev/null
+++ b/tests/code-check-codeception-nodist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/codecept run on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/codecept run\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-composer-require-checker/.laminas-ci.json b/tests/code-check-composer-require-checker/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-composer-require-checker/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-composer-require-checker/composer-require-checker.json b/tests/code-check-composer-require-checker/composer-require-checker.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/tests/code-check-composer-require-checker/composer-require-checker.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/code-check-composer-require-checker/matrix.json b/tests/code-check-composer-require-checker/matrix.json
new file mode 100644
index 00000000..261ec067
--- /dev/null
+++ b/tests/code-check-composer-require-checker/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/composer-require-checker check --config-file=composer-require-checker.json -n -v composer.json on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/composer-require-checker check --config-file=composer-require-checker.json -n -v composer.json\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-infection-dist/.laminas-ci.json b/tests/code-check-infection-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-infection-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-infection-dist/composer.json b/tests/code-check-infection-dist/composer.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/tests/code-check-infection-dist/composer.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/code-check-infection-dist/infection.json.dist b/tests/code-check-infection-dist/infection.json.dist
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/code-check-infection-dist/matrix.json b/tests/code-check-infection-dist/matrix.json
new file mode 100644
index 00000000..f6d9d253
--- /dev/null
+++ b/tests/code-check-infection-dist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "phpdbg -qrr ./vendor/bin/infection on PHP 7.4",
+ "job": "{\"command\":\"phpdbg -qrr ./vendor/bin/infection\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-infection-nodist/.laminas-ci.json b/tests/code-check-infection-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-infection-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-infection-nodist/composer.json b/tests/code-check-infection-nodist/composer.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/tests/code-check-infection-nodist/composer.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/code-check-infection-nodist/infection.json b/tests/code-check-infection-nodist/infection.json
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/code-check-infection-nodist/matrix.json b/tests/code-check-infection-nodist/matrix.json
new file mode 100644
index 00000000..f6d9d253
--- /dev/null
+++ b/tests/code-check-infection-nodist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "phpdbg -qrr ./vendor/bin/infection on PHP 7.4",
+ "job": "{\"command\":\"phpdbg -qrr ./vendor/bin/infection\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-infection-roave-static-analysis-plugin-dist/.laminas-ci.json b/tests/code-check-infection-roave-static-analysis-plugin-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-infection-roave-static-analysis-plugin-dist/composer.json b/tests/code-check-infection-roave-static-analysis-plugin-dist/composer.json
new file mode 100644
index 00000000..bef44f26
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-dist/composer.json
@@ -0,0 +1,8 @@
+{
+ "require": {
+ "php": "~8.1.0"
+ },
+ "require-dev": {
+ "roave/infection-static-analysis-plugin": "*"
+ }
+}
diff --git a/tests/code-check-infection-roave-static-analysis-plugin-dist/infection.json.dist b/tests/code-check-infection-roave-static-analysis-plugin-dist/infection.json.dist
new file mode 100644
index 00000000..e69de29b
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
new file mode 100644
index 00000000..5b2e9d58
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-dist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "phpdbg -qrr ./vendor/bin/roave-infection-static-analysis-plugin on PHP 8.1",
+ "job": "{\"command\":\"phpdbg -qrr ./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-infection-roave-static-analysis-plugin-nodist/.laminas-ci.json b/tests/code-check-infection-roave-static-analysis-plugin-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-infection-roave-static-analysis-plugin-nodist/composer.json b/tests/code-check-infection-roave-static-analysis-plugin-nodist/composer.json
new file mode 100644
index 00000000..bef44f26
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-nodist/composer.json
@@ -0,0 +1,8 @@
+{
+ "require": {
+ "php": "~8.1.0"
+ },
+ "require-dev": {
+ "roave/infection-static-analysis-plugin": "*"
+ }
+}
diff --git a/tests/code-check-infection-roave-static-analysis-plugin-nodist/infection.json b/tests/code-check-infection-roave-static-analysis-plugin-nodist/infection.json
new file mode 100644
index 00000000..e69de29b
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
new file mode 100644
index 00000000..5b2e9d58
--- /dev/null
+++ b/tests/code-check-infection-roave-static-analysis-plugin-nodist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "phpdbg -qrr ./vendor/bin/roave-infection-static-analysis-plugin on PHP 8.1",
+ "job": "{\"command\":\"phpdbg -qrr ./vendor/bin/roave-infection-static-analysis-plugin\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-phpbench/.laminas-ci.json b/tests/code-check-phpbench/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-phpbench/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-phpbench/matrix.json b/tests/code-check-phpbench/matrix.json
new file mode 100644
index 00000000..82d03561
--- /dev/null
+++ b/tests/code-check-phpbench/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-phpbench/phpbench.json b/tests/code-check-phpbench/phpbench.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/tests/code-check-phpbench/phpbench.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/code-check-phpcs-dist/.laminas-ci.json b/tests/code-check-phpcs-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-phpcs-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-phpcs-dist/matrix.json b/tests/code-check-phpcs-dist/matrix.json
new file mode 100644
index 00000000..0f91ca7a
--- /dev/null
+++ b/tests/code-check-phpcs-dist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/phpcs -q --report=checkstyle | cs2pr on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-phpcs-dist/phpcs.xml.dist b/tests/code-check-phpcs-dist/phpcs.xml.dist
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-phpcs-dist/phpcs.xml.dist
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/code-check-phpcs-nodist/.laminas-ci.json b/tests/code-check-phpcs-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-phpcs-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-phpcs-nodist/matrix.json b/tests/code-check-phpcs-nodist/matrix.json
new file mode 100644
index 00000000..0f91ca7a
--- /dev/null
+++ b/tests/code-check-phpcs-nodist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/phpcs -q --report=checkstyle | cs2pr on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/phpcs -q --report=checkstyle | cs2pr\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-phpcs-nodist/phpcs.xml b/tests/code-check-phpcs-nodist/phpcs.xml
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-phpcs-nodist/phpcs.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/code-check-phpunit-dist/.laminas-ci.json b/tests/code-check-phpunit-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-phpunit-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-phpunit-dist/composer.json b/tests/code-check-phpunit-dist/composer.json
new file mode 100644
index 00000000..a026b4b0
--- /dev/null
+++ b/tests/code-check-phpunit-dist/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": "~8.1.0"
+ }
+}
diff --git a/tests/code-check-phpunit-dist/composer.lock b/tests/code-check-phpunit-dist/composer.lock
new file mode 100644
index 00000000..2c63c085
--- /dev/null
+++ b/tests/code-check-phpunit-dist/composer.lock
@@ -0,0 +1,2 @@
+{
+}
diff --git a/tests/code-check-phpunit-dist/matrix.json b/tests/code-check-phpunit-dist/matrix.json
new file mode 100644
index 00000000..80f89c89
--- /dev/null
+++ b/tests/code-check-phpunit-dist/matrix.json
@@ -0,0 +1,22 @@
+{
+ "include": [
+ {
+ "name": "PHPUnit on PHP 8.1 with locked dependencies",
+ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}",
+ "operatingSystem": "ubuntu-latest",
+ "action": "laminas/laminas-continuous-integration-action@v1"
+ },
+ {
+ "name": "PHPUnit on PHP 8.1 with lowest dependencies",
+ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"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": "PHPUnit on PHP 8.1 with latest dependencies",
+ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"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/code-check-phpunit-dist/phpunit.xml.dist b/tests/code-check-phpunit-dist/phpunit.xml.dist
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-phpunit-dist/phpunit.xml.dist
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/code-check-phpunit-nodist/.laminas-ci.json b/tests/code-check-phpunit-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-phpunit-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-phpunit-nodist/composer.json b/tests/code-check-phpunit-nodist/composer.json
new file mode 100644
index 00000000..a026b4b0
--- /dev/null
+++ b/tests/code-check-phpunit-nodist/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": "~8.1.0"
+ }
+}
diff --git a/tests/code-check-phpunit-nodist/matrix.json b/tests/code-check-phpunit-nodist/matrix.json
new file mode 100644
index 00000000..4a5c4c6e
--- /dev/null
+++ b/tests/code-check-phpunit-nodist/matrix.json
@@ -0,0 +1,16 @@
+{
+ "include": [
+ {
+ "name": "PHPUnit on PHP 8.1 with lowest dependencies",
+ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"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": "PHPUnit on PHP 8.1 with latest dependencies",
+ "job": "{\"command\":\"./vendor/bin/phpunit\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"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/code-check-phpunit-nodist/phpunit.xml b/tests/code-check-phpunit-nodist/phpunit.xml
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-phpunit-nodist/phpunit.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/code-check-psalm-dist/.laminas-ci.json b/tests/code-check-psalm-dist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-psalm-dist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-psalm-dist/matrix.json b/tests/code-check-psalm-dist/matrix.json
new file mode 100644
index 00000000..ad0f2e96
--- /dev/null
+++ b/tests/code-check-psalm-dist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-psalm-dist/psalm.xml.dist b/tests/code-check-psalm-dist/psalm.xml.dist
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-psalm-dist/psalm.xml.dist
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/code-check-psalm-nodist/.laminas-ci.json b/tests/code-check-psalm-nodist/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/code-check-psalm-nodist/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/code-check-psalm-nodist/matrix.json b/tests/code-check-psalm-nodist/matrix.json
new file mode 100644
index 00000000..ad0f2e96
--- /dev/null
+++ b/tests/code-check-psalm-nodist/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache on PHP 7.4",
+ "job": "{\"command\":\"./vendor/bin/psalm --shepherd --stats --output-format=github --no-cache\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/code-check-psalm-nodist/psalm.xml b/tests/code-check-psalm-nodist/psalm.xml
new file mode 100644
index 00000000..0e632ce3
--- /dev/null
+++ b/tests/code-check-psalm-nodist/psalm.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/tests/configuration-additional-job-latest-php-version/.laminas-ci.json b/tests/configuration-additional-job-latest-php-version/.laminas-ci.json
new file mode 100644
index 00000000..7ee28897
--- /dev/null
+++ b/tests/configuration-additional-job-latest-php-version/.laminas-ci.json
@@ -0,0 +1,11 @@
+{
+ "additional_checks": [
+ {
+ "name": "Whatever Check",
+ "job": {
+ "php": "@latest",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/configuration-additional-job-latest-php-version/composer.json b/tests/configuration-additional-job-latest-php-version/composer.json
new file mode 100644
index 00000000..76f8ac2c
--- /dev/null
+++ b/tests/configuration-additional-job-latest-php-version/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": ">=5.6,<=8.1.0"
+ }
+}
diff --git a/tests/configuration-additional-job-latest-php-version/matrix.json b/tests/configuration-additional-job-latest-php-version/matrix.json
new file mode 100644
index 00000000..b015fdbc
--- /dev/null
+++ b/tests/configuration-additional-job-latest-php-version/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "Whatever Check on PHP 8.1 with locked dependencies",
+ "job": "{\"command\":\"test\",\"php\":\"8.1\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/.laminas-ci.json b/tests/configuration-additional-job-lowest-php-version/.laminas-ci.json
new file mode 100644
index 00000000..20928213
--- /dev/null
+++ b/tests/configuration-additional-job-lowest-php-version/.laminas-ci.json
@@ -0,0 +1,11 @@
+{
+ "additional_checks": [
+ {
+ "name": "Whatever Check",
+ "job": {
+ "php": "@lowest",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/configuration-additional-job-lowest-php-version/composer.json b/tests/configuration-additional-job-lowest-php-version/composer.json
new file mode 100644
index 00000000..35397fba
--- /dev/null
+++ b/tests/configuration-additional-job-lowest-php-version/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": ">=5.6"
+ }
+}
diff --git a/tests/configuration-additional-job-lowest-php-version/matrix.json b/tests/configuration-additional-job-lowest-php-version/matrix.json
new file mode 100644
index 00000000..ec829e22
--- /dev/null
+++ b/tests/configuration-additional-job-lowest-php-version/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "Whatever Check on PHP 5.6 with locked dependencies",
+ "job": "{\"command\":\"test\",\"php\":\"5.6\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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/.laminas-ci.json b/tests/configuration-explicit-job-wildcard-dependency-set/.laminas-ci.json
new file mode 100644
index 00000000..535c0e44
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-dependency-set/.laminas-ci.json
@@ -0,0 +1,12 @@
+{
+ "checks": [
+ {
+ "name": "Whatever Check",
+ "job": {
+ "php": "8.1",
+ "dependencies": "*",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/configuration-explicit-job-wildcard-dependency-set/composer.json b/tests/configuration-explicit-job-wildcard-dependency-set/composer.json
new file mode 100644
index 00000000..fb4d5cbe
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-dependency-set/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": "~7.4.0 || ~8.0.0"
+ }
+}
diff --git a/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json b/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json
new file mode 100644
index 00000000..f831a419
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-dependency-set/matrix.json
@@ -0,0 +1,16 @@
+{
+ "include": [
+ {
+ "name": "Whatever Check on PHP 8.1 with lowest dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"8.1\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"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 on PHP 8.1 with latest dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"8.1\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"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/.laminas-ci.json b/tests/configuration-explicit-job-wildcard-php/.laminas-ci.json
new file mode 100644
index 00000000..bc384eb5
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-php/.laminas-ci.json
@@ -0,0 +1,11 @@
+{
+ "checks": [
+ {
+ "name": "Whatever Check",
+ "job": {
+ "php": "*",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/configuration-explicit-job-wildcard-php/composer.json b/tests/configuration-explicit-job-wildcard-php/composer.json
new file mode 100644
index 00000000..7b0daba3
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-php/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "php": ">=5.6,<=8.1.99"
+ }
+}
diff --git a/tests/configuration-explicit-job-wildcard-php/matrix.json b/tests/configuration-explicit-job-wildcard-php/matrix.json
new file mode 100644
index 00000000..abf278df
--- /dev/null
+++ b/tests/configuration-explicit-job-wildcard-php/matrix.json
@@ -0,0 +1,52 @@
+{
+ "include": [
+ {
+ "name": "Whatever Check on PHP 5.6 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"5.6\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 7.0 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.0\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 7.1 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.1\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 7.2 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.2\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 7.3 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.3\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 7.4 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.4\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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 on PHP 8.0 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"8.0\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"ignore_platform_reqs_8\\\":true,\\\"ignore_php_platform_requirement\\\":true,\\\"additional_composer_arguments\\\":[]}\"",
+ "operatingSystem": "ubuntu-latest",
+ "action": "laminas/laminas-continuous-integration-action@v1"
+ },
+ {
+ "name": "Whatever Check on PHP 8.1 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"8.1\\\",\\\"extensions\\\":[],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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/.laminas-ci.json b/tests/doc-linting-doc-book/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/doc-linting-doc-book/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/doc-linting-doc-book/doc/book/.gitkeep b/tests/doc-linting-doc-book/doc/book/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/doc-linting-doc-book/matrix.json b/tests/doc-linting-doc-book/matrix.json
new file mode 100644
index 00000000..dfffa174
--- /dev/null
+++ b/tests/doc-linting-doc-book/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "markdownlint doc/book/**/*.md on PHP 7.4",
+ "job": "{\"command\":\"markdownlint doc/book/**/*.md\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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-docs-book/.laminas-ci.json b/tests/doc-linting-docs-book/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/doc-linting-docs-book/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/doc-linting-docs-book/docs/book/.gitkeep b/tests/doc-linting-docs-book/docs/book/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/doc-linting-docs-book/matrix.json b/tests/doc-linting-docs-book/matrix.json
new file mode 100644
index 00000000..e579f954
--- /dev/null
+++ b/tests/doc-linting-docs-book/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "markdownlint doc/book/**/*.md on PHP 7.4",
+ "job": "{\"command\":\"markdownlint docs/book/**/*.md\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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-mkdocs/.laminas-ci.json b/tests/doc-linting-mkdocs/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/doc-linting-mkdocs/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/doc-linting-mkdocs/matrix.json b/tests/doc-linting-mkdocs/matrix.json
new file mode 100644
index 00000000..30f2518b
--- /dev/null
+++ b/tests/doc-linting-mkdocs/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "yamllint -d relaxed --no-warnings mkdocs.yml on PHP 7.4",
+ "job": "{\"command\":\"yamllint -d relaxed --no-warnings mkdocs.yml\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"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-mkdocs/mkdocs.yml b/tests/doc-linting-mkdocs/mkdocs.yml
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/extensions-from-composer-json/.laminas-ci.json b/tests/extensions-from-composer-json/.laminas-ci.json
new file mode 100644
index 00000000..c3ad139b
--- /dev/null
+++ b/tests/extensions-from-composer-json/.laminas-ci.json
@@ -0,0 +1,11 @@
+{
+ "checks": [
+ {
+ "name": "Some Job",
+ "job": {
+ "php": "7.4",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/extensions-from-composer-json/composer.json b/tests/extensions-from-composer-json/composer.json
new file mode 100644
index 00000000..a27e211d
--- /dev/null
+++ b/tests/extensions-from-composer-json/composer.json
@@ -0,0 +1,9 @@
+{
+ "require": {
+ "php": "~8.1.0",
+ "ext-mbstring": "*"
+ },
+ "require-dev": {
+ "ext-json": "*"
+ }
+}
diff --git a/tests/extensions-from-composer-json/matrix.json b/tests/extensions-from-composer-json/matrix.json
new file mode 100644
index 00000000..b4af9cdc
--- /dev/null
+++ b/tests/extensions-from-composer-json/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "Some Job on PHP 7.4 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.4\\\",\\\"extensions\\\":[\\\"mbstring\\\",\\\"json\\\"],\\\"ini\\\":[\\\"memory_limit = -1\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"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/no-checks/.laminas-ci.json b/tests/no-checks/.laminas-ci.json
new file mode 100644
index 00000000..a912e7b6
--- /dev/null
+++ b/tests/no-checks/.laminas-ci.json
@@ -0,0 +1,3 @@
+{
+ "stablePHP": "7.4"
+}
diff --git a/tests/empty-project/matrix.json b/tests/no-checks/matrix.json
similarity index 100%
rename from tests/empty-project/matrix.json
rename to tests/no-checks/matrix.json
diff --git a/tests/php-ini-from-configuration/.laminas-ci.json b/tests/php-ini-from-configuration/.laminas-ci.json
new file mode 100644
index 00000000..9259c134
--- /dev/null
+++ b/tests/php-ini-from-configuration/.laminas-ci.json
@@ -0,0 +1,15 @@
+
+{
+ "ini": [
+ "error_reporting=E_ALL"
+ ],
+ "checks": [
+ {
+ "name": "Some Job",
+ "job": {
+ "php": "7.4",
+ "command": "test"
+ }
+ }
+ ]
+}
diff --git a/tests/php-ini-from-configuration/composer.json b/tests/php-ini-from-configuration/composer.json
new file mode 100644
index 00000000..a27e211d
--- /dev/null
+++ b/tests/php-ini-from-configuration/composer.json
@@ -0,0 +1,9 @@
+{
+ "require": {
+ "php": "~8.1.0",
+ "ext-mbstring": "*"
+ },
+ "require-dev": {
+ "ext-json": "*"
+ }
+}
diff --git a/tests/php-ini-from-configuration/matrix.json b/tests/php-ini-from-configuration/matrix.json
new file mode 100644
index 00000000..4030cb59
--- /dev/null
+++ b/tests/php-ini-from-configuration/matrix.json
@@ -0,0 +1,10 @@
+{
+ "include": [
+ {
+ "name": "Some Job on PHP 7.4 with locked dependencies",
+ "job": "\"{\\\"command\\\":\\\"test\\\",\\\"php\\\":\\\"7.4\\\",\\\"extensions\\\":[\\\"mbstring\\\",\\\"json\\\"],\\\"ini\\\":[\\\"memory_limit = -1\\\",\\\"error_reporting=E_ALL\\\"],\\\"dependencies\\\":\\\"locked\\\",\\\"ignore_platform_reqs_8\\\":false,\\\"ignore_php_platform_requirement\\\":false,\\\"additional_composer_arguments\\\":[]}\"",
+ "operatingSystem": "ubuntu-latest",
+ "action": "laminas/laminas-continuous-integration-action@v1"
+ }
+ ]
+}
From cd86164b04ef2ba3b4ec7205275d3111738085a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:07:24 +0200
Subject: [PATCH 10/22] refactor: build docker container and use it within
build steps
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 55 ++++++++++++++++----
1 file changed, 44 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 1e5c4ed7..4292ec78 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -6,6 +6,9 @@ on:
branches:
- 'refs/pull/*'
+env:
+ TEST_TAG: laminas/ci-matrix-action:test
+
jobs:
matrix:
name: Generate job matrix
@@ -19,30 +22,59 @@ jobs:
id: matrix
run: cd tests; echo "::set-output name=matrix::[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
+ container:
+ name: Prepare docker container
+ runs-on: "ubuntu-latest"
+ strategy:
+ fail-fast: true
+ steps:
+ - name: Checkout sourcecode
+ uses: actions/checkout@v3
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Build container for CI pipeline
+ uses: docker/build-push-action@v2
+ with:
+ context: .
+ load: true
+ push: false
+ tags: ${{ env.TEST_TAG }}
+ outputs: type=docker,dest=/tmp/container.tar
+ - name: Upload container artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: container
+ path: /tmp/container.tar
+
qa:
name: QA Checks
- needs: [matrix]
+ needs: [matrix, container]
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
projectName: ${{ fromJSON(needs.matrix.outputs.matrix) }}
steps:
- - name: Setting up nodeJS
- uses: actions/setup-node@v2
+ - name: Download container artifact
+ uses: actions/download-artifact@v2
with:
- node-version: 17
- - name: Checkout sourcecode
- uses: actions/checkout@v3
- - name: Install dependencies
- run: npm ci
- - name: Prepare action files
- run: mkdir /action; cp composer.schema.json /action; cp laminas-ci.schema.json /action
+ name: container
+ path: /tmp
+
+ - name: Load image
+ run: docker load --input /tmp/myimage.tar
+
- name: "Generating matrix for project: ${{ matrix.projectName }}"
id: matrix_generation
env:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
- run: cd tests/${PROJECT_NAME_TO_TEST} && node ../../index.js $(test -r diff && cat diff || echo -n "")
+ run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace --it $(docker image ls --quite) node ../../index.js $(test -r diff && cat diff || echo -n "")
+
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
id: expected_matrix
@@ -50,6 +82,7 @@ jobs:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
with:
cmd: 'jq -c . < tests/${PROJECT_NAME_TO_TEST}/matrix.json'
+
- name: "verify output of generated matrix for project: empty-project"
env:
GENERATED_MATRIX: ${{ steps.matrix_generation.outputs.matrix }}
From dd7ef624ae1e903ca1dc0c862f5fbecf2ada9f21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:09:03 +0200
Subject: [PATCH 11/22] bugfix: fixup container filename
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 4292ec78..d01a88ec 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -67,7 +67,7 @@ jobs:
path: /tmp
- name: Load image
- run: docker load --input /tmp/myimage.tar
+ run: docker load --input /tmp/container.tar
- name: "Generating matrix for project: ${{ matrix.projectName }}"
id: matrix_generation
From 4be073d73c1a04dffa228d0b9264de5194b95a23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:13:16 +0200
Subject: [PATCH 12/22] bugfix: checkout source code
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index d01a88ec..7d38ae06 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -60,6 +60,9 @@ jobs:
matrix:
projectName: ${{ fromJSON(needs.matrix.outputs.matrix) }}
steps:
+ - name: Checkout sourcecode
+ uses: actions/checkout@v3
+
- name: Download container artifact
uses: actions/download-artifact@v2
with:
@@ -73,7 +76,7 @@ jobs:
id: matrix_generation
env:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
- run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace --it $(docker image ls --quite) node ../../index.js $(test -r diff && cat diff || echo -n "")
+ run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace --it $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
From 3b82981f3d50ea2b5cf38aaa5ea43d8c03f6e75b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:15:17 +0200
Subject: [PATCH 13/22] feature: use github action cache for container build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 7d38ae06..fb235b7e 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -45,6 +45,9 @@ jobs:
push: false
tags: ${{ env.TEST_TAG }}
outputs: type=docker,dest=/tmp/container.tar
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
+
- name: Upload container artifact
uses: actions/upload-artifact@v2
with:
From 454ac89c7fb6aa851c41b39d67e847c51a764d10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:15:47 +0200
Subject: [PATCH 14/22] bugfix: use `-it` rather than `--it`
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index fb235b7e..b88edd02 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -79,7 +79,7 @@ jobs:
id: matrix_generation
env:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
- run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace --it $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
+ run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace -it $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
From 92f93aa6bcac0f08d1aa02f40ea6a998c6755635 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:19:05 +0200
Subject: [PATCH 15/22] bugfix: remove interactive tty from `docker run`
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index b88edd02..3098898c 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -79,7 +79,7 @@ jobs:
id: matrix_generation
env:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
- run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace -it $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
+ run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
From 2f92a400e78407ee6b53dd1da4f4ffff4dd92112 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:25:02 +0200
Subject: [PATCH 16/22] bugfix: use `TEST_TAG` as container identifier
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 3098898c..3155c633 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -79,7 +79,7 @@ jobs:
id: matrix_generation
env:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
- run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace $(docker image ls --quiet) node ../../index.js $(test -r diff && cat diff || echo -n "")
+ run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace ${TEST_TAG} node ../../index.js $(test -r diff && cat diff || echo -n "")
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
From 2efe76c8cfd6e2bbc65ae342f1bd7b0bc5b7119b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:29:03 +0200
Subject: [PATCH 17/22] feature: output generated matrix from
`matrix_generation` step
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 3155c633..928ad32f 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -81,6 +81,11 @@ jobs:
PROJECT_NAME_TO_TEST: ${{ matrix.projectName }}
run: cd tests/${PROJECT_NAME_TO_TEST} && docker run -v $(realpath .):/github/workspace -w=/github/workspace ${TEST_TAG} node ../../index.js $(test -r diff && cat diff || echo -n "")
+ - name: "Output generated matrix"
+ uses: sergeysova/jq-action@v2
+ with:
+ cmd: 'echo ${{ steps.matrix_generation.outputs.matrix }} | jq'
+
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
id: expected_matrix
From a963e94d026d04623e58f74f6a0a175906c0a1b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:34:36 +0200
Subject: [PATCH 18/22] bugfix: properly escape JSON output
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 928ad32f..251e433b 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -84,7 +84,7 @@ jobs:
- name: "Output generated matrix"
uses: sergeysova/jq-action@v2
with:
- cmd: 'echo ${{ steps.matrix_generation.outputs.matrix }} | jq'
+ cmd: "jq . < <(echo '${{ steps.matrix_generation.outputs.matrix }}')"
- name: Minify matrix from test directory
uses: sergeysova/jq-action@v2
@@ -99,4 +99,4 @@ jobs:
GENERATED_MATRIX: ${{ steps.matrix_generation.outputs.matrix }}
EXPECTED_MATRIX: ${{ steps.expected_matrix.outputs.value }}
PROJECT_NAME_TO_TEST: "empty-project"
- run: diff --color <(echo ${EXPECTED_MATRIX}) <(echo ${GENERATED_MATRIX})
+ run: diff --color <(echo '${EXPECTED_MATRIX}') <(echo '${GENERATED_MATRIX}')
From 503b791dda4d18f9c0eb6add3d6ce48b13239ccb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:36:49 +0200
Subject: [PATCH 19/22] bugfix: change to `<=8.1.0` since `,` constraint is not
supported (yet)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.../composer.json | 2 +-
tests/configuration-explicit-job-wildcard-php/composer.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/configuration-additional-job-latest-php-version/composer.json b/tests/configuration-additional-job-latest-php-version/composer.json
index 76f8ac2c..902396cf 100644
--- a/tests/configuration-additional-job-latest-php-version/composer.json
+++ b/tests/configuration-additional-job-latest-php-version/composer.json
@@ -1,5 +1,5 @@
{
"require": {
- "php": ">=5.6,<=8.1.0"
+ "php": "<=8.1.0"
}
}
diff --git a/tests/configuration-explicit-job-wildcard-php/composer.json b/tests/configuration-explicit-job-wildcard-php/composer.json
index 7b0daba3..f3afd8a6 100644
--- a/tests/configuration-explicit-job-wildcard-php/composer.json
+++ b/tests/configuration-explicit-job-wildcard-php/composer.json
@@ -1,5 +1,5 @@
{
"require": {
- "php": ">=5.6,<=8.1.99"
+ "php": "<=8.1.99"
}
}
From e514d80119819055c10db26b1dba762f94e67e8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:46:36 +0200
Subject: [PATCH 20/22] bugfix: add missing `s` to `docs`
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
tests/doc-linting-docs-book/matrix.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/doc-linting-docs-book/matrix.json b/tests/doc-linting-docs-book/matrix.json
index e579f954..771f6240 100644
--- a/tests/doc-linting-docs-book/matrix.json
+++ b/tests/doc-linting-docs-book/matrix.json
@@ -1,7 +1,7 @@
{
"include": [
{
- "name": "markdownlint doc/book/**/*.md on PHP 7.4",
+ "name": "markdownlint docs/book/**/*.md on PHP 7.4",
"job": "{\"command\":\"markdownlint docs/book/**/*.md\",\"php\":\"7.4\",\"extensions\":[],\"ini\":[\"memory_limit = -1\"],\"dependencies\":\"locked\",\"ignore_platform_reqs_8\":false,\"ignore_php_platform_requirement\":false,\"additional_composer_arguments\":[]}",
"operatingSystem": "ubuntu-latest",
"action": "laminas/laminas-continuous-integration-action@v1"
From a945d276d1a54cbc9d93ca1b5ab2e4d7a5011f8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Thu, 7 Apr 2022 01:49:48 +0200
Subject: [PATCH 21/22] bugfix: escape JSON for verification
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 251e433b..433b39cb 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -95,8 +95,4 @@ jobs:
cmd: 'jq -c . < tests/${PROJECT_NAME_TO_TEST}/matrix.json'
- name: "verify output of generated matrix for project: empty-project"
- env:
- GENERATED_MATRIX: ${{ steps.matrix_generation.outputs.matrix }}
- EXPECTED_MATRIX: ${{ steps.expected_matrix.outputs.value }}
- PROJECT_NAME_TO_TEST: "empty-project"
- run: diff --color <(echo '${EXPECTED_MATRIX}') <(echo '${GENERATED_MATRIX}')
+ run: diff --color <(echo '${{ steps.expected_matrix.outputs.value }}') <(echo '${{ steps.matrix_generation.outputs.matrix }}')
From eef730a24bdaaf4a5b71701bab7b6fc429feb3ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20B=C3=B6sing?=
<2189546+boesing@users.noreply.github.com>
Date: Tue, 28 Jun 2022 15:01:16 +0200
Subject: [PATCH 22/22] docs: add some clarification on why we generate a
matrix here
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
---
.github/workflows/continuous-integration.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 433b39cb..c84bc85c 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -20,6 +20,9 @@ jobs:
uses: actions/checkout@v3
- name: Gather integration test directory names
id: matrix
+ # This provides a dedicated "check" to asynchronously test all integration tests within the tests/ directory
+ # The project name from the tests/ directory is then re-used within the "qa" job to run the generated "container"
+ # within that directory.
run: cd tests; echo "::set-output name=matrix::[\"$(ls -d * | tr '\n' ' ' | sed 's/ $//' | sed 's/ /\",\"/g')\"]"
container: