Skip to content

Commit 33108e6

Browse files
authored
V4 (#34)
1 parent 7e959fb commit 33108e6

38 files changed

Lines changed: 2697 additions & 109 deletions

.gitattributes

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
1-
/.github/ export-ignore
2-
/Build/ export-ignore
3-
/Tests/ export-ignore
1+
/.Build/ export-ignore
2+
/.ddev/ export-ignore
43
/.editorconfig export-ignore
4+
/.eslintignore export-ignore
5+
/.eslintrc.json export-ignore
56
/.gitattributes export-ignore
67
/.github/ export-ignore
78
/.gitignore export-ignore
8-
/.scrutinizer export-ignore
9-
/.styleci.yml export-ignore
10-
/.travis.yml export-ignore
9+
/.gitlab/ export-ignore
10+
/.php-cs-fixer.php export-ignore
11+
/.phpstorm.meta.php export-ignore
12+
/.prettierrc.js export-ignore
13+
/Build/ export-ignore
14+
/Configuration/FunctionalTests.xml export-ignore
15+
/Configuration/UnitTests.xml export-ignore
16+
/Tests/ export-ignore
17+
/package.json export-ignore
18+
/phive.xml export-ignore
19+
/phpcs.xml export-ignore
20+
/phpstan-baseline.neon export-ignore
21+
/phpstan.neon export-ignore
22+
/stylelint.config.js export-ignore
23+
/tools/ export-ignore binary

.github/workflows/ci.yml

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
---
2+
# This GitHub Actions workflow uses the same development tools that are also installed locally
3+
# via Composer or PHIVE and calls them using the Composer scripts.
4+
name: CI with Composer scripts
5+
on:
6+
push:
7+
branches:
8+
- main
9+
- v4
10+
pull_request:
11+
permissions:
12+
contents: read
13+
packages: read
14+
jobs:
15+
php-lint:
16+
name: "PHP linter"
17+
runs-on: ubuntu-22.04
18+
steps:
19+
- name: "Checkout"
20+
uses: actions/checkout@v4
21+
- name: "Install PHP"
22+
uses: shivammathur/setup-php@v2
23+
with:
24+
php-version: "${{ matrix.php-version }}"
25+
coverage: none
26+
tools: composer:v2
27+
- name: "Show the Composer configuration"
28+
run: "composer config --global --list"
29+
- name: "Run PHP lint"
30+
run: "composer ci:php:lint"
31+
strategy:
32+
fail-fast: false
33+
matrix:
34+
php-version:
35+
- "8.2"
36+
- "8.3"
37+
code-quality:
38+
name: "Code quality checks"
39+
runs-on: ubuntu-22.04
40+
steps:
41+
- name: "Checkout"
42+
uses: actions/checkout@v4
43+
- name: "Install PHP"
44+
uses: shivammathur/setup-php@v2
45+
with:
46+
php-version: "${{ matrix.php-version }}"
47+
coverage: none
48+
tools: composer:v2
49+
- name: "Show Composer version"
50+
run: "composer --version"
51+
- name: "Show the Composer configuration"
52+
run: "composer config --global --list"
53+
- name: "Cache dependencies installed with composer"
54+
uses: actions/cache@v4
55+
with:
56+
key: "php${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }}"
57+
path: ~/.cache/composer
58+
restore-keys: "php${{ matrix.php-version }}-composer-\n"
59+
- name: "Install Composer dependencies"
60+
run: "composer update --no-progress"
61+
- name: "Run command"
62+
run: "composer ci:${{ matrix.command }}"
63+
strategy:
64+
fail-fast: false
65+
matrix:
66+
command:
67+
- "php:csfix"
68+
- "php:sniff"
69+
- "ts:lint"
70+
- "xliff:lint"
71+
- "php:stan"
72+
php-version:
73+
- "8.2"
74+
- "8.3"
75+
unit-tests:
76+
name: "Unit tests"
77+
runs-on: ubuntu-22.04
78+
needs: php-lint
79+
steps:
80+
- name: "Checkout"
81+
uses: actions/checkout@v4
82+
- name: "Install PHP"
83+
uses: shivammathur/setup-php@v2
84+
with:
85+
php-version: "${{ matrix.php-version }}"
86+
coverage: none
87+
tools: composer:v2
88+
- name: "Show Composer version"
89+
run: "composer --version"
90+
- name: "Show the Composer configuration"
91+
run: "composer config --global --list"
92+
- name: "Cache dependencies installed with composer"
93+
uses: actions/cache@v4
94+
with:
95+
key: "php${{ matrix.php-version }}-typo3${{ matrix.typo3-version }}-${{ matrix.composer-dependencies }}-composer-${{ hashFiles('**/composer.json') }}"
96+
path: ~/.cache/composer
97+
restore-keys: "php${{ matrix.php-version }}-typo3${{ matrix.typo3-version }}-${{ matrix.composer-dependencies }}-composer-\n"
98+
- name: "Install TYPO3 Core"
99+
env:
100+
TYPO3: "${{ matrix.typo3-version }}"
101+
run: |
102+
composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"$TYPO3"
103+
composer show
104+
- name: "Install highest dependencies with composer"
105+
if: "matrix.composer-dependencies == 'highest'"
106+
run: |
107+
composer update --no-ansi --no-interaction --no-progress --with-dependencies
108+
composer show
109+
- name: "Run unit tests"
110+
run: "composer ci:tests:unit"
111+
strategy:
112+
fail-fast: false
113+
matrix:
114+
include:
115+
- typo3-version: "^13.4"
116+
php-version: "8.2"
117+
composer-dependencies: highest
118+
- typo3-version: "^13.4"
119+
php-version: "8.3"
120+
composer-dependencies: highest
121+
functional-tests:
122+
name: "Functional tests"
123+
runs-on: ubuntu-22.04
124+
needs: php-lint
125+
strategy:
126+
# This prevents cancellation of matrix job runs, if one/two already failed and let the
127+
# rest matrix jobs be executed anyway.
128+
fail-fast: false
129+
matrix:
130+
php: [ '8.2', '8.3' ]
131+
composerInstall: [ 'composerInstallHighest' ]
132+
steps:
133+
- name: Checkout
134+
uses: actions/checkout@v4
135+
136+
- name: Install testing system
137+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -s ${{ matrix.composerInstall }}
138+
139+
- name: Functional Tests with mariadb (min)
140+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d mariadb -i 10.4 -s functional
141+
142+
- name: Functional Tests with mariadb (max)
143+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d mariadb -i 10.11 -s functional
144+
145+
- name: Functional Tests with mysql (min/max)
146+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d mysql -i 8.0 -s functional
147+
148+
- name: Functional Tests with postgres (min)
149+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d postgres -i 10 -s functional
150+
151+
- name: Functional Tests with postgres (max)
152+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d postgres -i 16 -s functional
153+
154+
- name: Functional Tests with sqlite
155+
run: Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php }} -d sqlite -s functional

.gitignore

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
/.Build
2-
/Build/Local/.phpunit.result.cache
2+
.cache
33
/composer.lock
4+
/composer.json.testing
45
/.php_cs.cache
5-
/Documentation-GENERATED-temp
6-
/Tests/Build/.phpunit.result.cache
6+
/.php-cs-fixer.cache
77
.DS_Store
8-
/.idea
8+
.idea/
9+
.fleet/
10+
/var/
11+
Build/testing-docker/.env

.php-cs-fixer.cache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"php":"8.2.19","version":"3.58.1:v3.58.1#04e9424025677a86914b9a4944dbbf4060bb0aff","indent":" ","lineEnding":"\n","rules":{"doctrine_annotation_array_assignment":{"operator":":"},"doctrine_annotation_braces":true,"doctrine_annotation_indentation":true,"doctrine_annotation_spaces":{"before_array_assignments_colon":false},"blank_line_after_namespace":true,"braces_position":true,"class_definition":true,"constant_case":true,"control_structure_braces":true,"control_structure_continuation_position":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_multiple_statements_per_line":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_import_per_statement":true,"single_line_after_imports":true,"spaces_inside_parentheses":true,"statement_indentation":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":{"elements":["method","property"]},"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"blank_line_after_opening_tag":true,"braces":{"allow_single_line_closure":true},"cast_spaces":{"space":"none"},"compact_nullable_typehint":true,"concat_space":{"spacing":"one"},"declare_equal_normalize":{"space":"none"},"dir_constant":true,"function_to_constant":{"functions":["get_called_class","get_class","get_class_this","php_sapi_name","phpversion","pi"]},"function_typehint_space":true,"lowercase_cast":true,"modernize_types_casting":true,"native_function_casing":true,"new_with_braces":true,"no_alias_functions":true,"no_blank_lines_after_phpdoc":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":true,"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_null_property_initialization":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_superfluous_elseif":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unused_imports":true,"no_useless_else":true,"no_whitespace_in_blank_line":true,"ordered_imports":true,"php_unit_construct":{"assertions":["assertEquals","assertSame","assertNotEquals","assertNotSame"]},"php_unit_mock_short_will_return":true,"php_unit_test_case_static_method_calls":{"call_type":"self"},"phpdoc_no_access":true,"phpdoc_no_empty_return":true,"phpdoc_no_package":true,"phpdoc_scalar":true,"phpdoc_trim":true,"phpdoc_types":true,"phpdoc_types_order":{"null_adjustment":"always_last","sort_algorithm":"none"},"return_type_declaration":{"space_before":"none"},"single_quote":true,"single_line_comment_style":{"comment_types":["hash"]},"single_trait_insert_per_statement":true,"trailing_comma_in_multiline":{"elements":["arrays"]},"whitespace_after_comma_in_array":true,"yoda_style":{"equal":false,"identical":false,"less_and_greater":false}},"hashes":{"Build\/phpunit\/FunctionalTestsBootstrap.php":"67775c325d9f7d89fbe602ef26bcf693","Build\/phpunit\/UnitTestsBootstrap.php":"7ac3592092d6a62519aa070e92e7fb3e","Build\/php-cs-fixer\/php-cs-fixer.php":"c5247f77ac9eb121e6c839306717b471","public\/typo3\/index.php":"73316f95f833758b7b12a54bfde58549","public\/index.php":"018e726396942106e0a53130b1ca7f73","Resources\/Examples\/comprehend.php":"969abbfff68c1c5024ea1910fae304bd","Resources\/Examples\/detectLabels.php":"2681edcac23ce9daecd6c64635c6c6f2","Resources\/Examples\/textract.php":"b2587c1b82815df2777b46ad41d06ae4","Resources\/Examples\/transcribe.php":"2c7b0756fe96e0b66081a3e4728025d7","Resources\/Examples\/detectText.php":"fdb904131ccf872531501908dd1e95b0","Configuration\/TCA\/Overrides\/sys_file_metadata.php":"01e6c11a79497bf2498d1ffba203fa32","Classes\/EventListener\/AfterFileAddedEventListener.php":"d204b5c5734a632934ee018af8c5f679","Classes\/Service\/AwsImageRecognizeService.php":"3dbf95ae32cf04c8c4a249010cb63a93","Classes\/Event\/ModifyValidatorEvent.php":"1c2dd612c7007974713761385aad7924","Classes\/Event\/ModifyReportServiceEvent.php":"2e84bec82ebb3c55cdc7bec9efb87463","Classes\/Service\/Validator\/AbstractVideoValidatorInterface.php":"ada5a0d65b3faf4b050e88cefe297d56","Classes\/Service\/Validator\/AbstractVideoValidator.php":"4fd25532f041a013bf96df32315e1961","Classes\/Service\/Validator\/VimeoValidator.php":"862c30bb6eb7753a517403c017f254b9","Classes\/Service\/Validator\/YoutubeValidator.php":"82a67f5dfc63d2245ea9e8f7ee4843bd","Classes\/Service\/VideoService.php":"641d4e56d72e812fc564503904023f5c","Classes\/Service\/Report\/AbstractReportServiceInterface.php":"2527247ebed271988cbef24763cb84a6","Classes\/Service\/Report\/EmailReportService.php":"1ccf17cb51d59c15826dfdefef9ce99b","Classes\/Command\/ReportCommand.php":"5103d92250eef4104bf333d3a2d750e3","Classes\/Command\/ValidatorCommand.php":"da722a705ffb75b800f80047ee38b7f6","Classes\/Command\/CountCommand.php":"fcb29000733c81c6c5b644a6bd84bc49","Classes\/Command\/ResetCommand.php":"ce36df291fe516cb7eaca785f938c901","Classes\/Domain\/Repository\/FileRepository.php":"10524e697bcbb83819737eba82d84ebe","Classes\/Domain\/Dto\/ValidatorDemand.php":"dc00a5518ee96bafb1646e649d6e669a","ext_localconf.php":"8d2a7c7f05899dc182511e49c7f16ce7","ext_emconf.php":"d3cf4a36c6d0d3c3585f8f350f757128","Tests\/Functional\/Domain\/Repository\/FileRepositoryTest.php":"69687248055594486275eca929420666","Tests\/Unit\/Service\/Validator\/YoutubeValidatorTest.php":"6e762e976c4036e295a34c45c391d39d","Tests\/Unit\/Service\/Validator\/VimeoValidatorTest.php":"11daa6f2eee2e3a77325e027601b8185"}}

0 commit comments

Comments
 (0)