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: