Fix symlinked file not inside root directory #18263
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: ~ | |
permissions: read-all | |
defaults: | |
run: | |
# Simulate an interactive terminal with color support | |
shell: script -q -e -c "export TERM=xterm; bash {0}" | |
jobs: | |
rector: | |
name: Rector | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install Rector | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/rector | |
- name: Run Rector | |
run: vendor-bin/rector/vendor/bin/rector --dry-run --no-progress-bar | |
ecs: | |
name: ECS | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install ECS | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/ecs | |
- name: Run ECS | |
run: vendor-bin/ecs/vendor/bin/ecs check --no-progress-bar | |
ecs-legacy: | |
name: ECS legacy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install ECS | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/ecs | |
- name: Run ECS | |
run: | | |
vendor-bin/ecs/vendor/bin/ecs check --config vendor-bin/ecs/config/legacy.php --no-progress-bar | |
vendor-bin/ecs/vendor/bin/ecs check --config vendor-bin/ecs/config/template.php --no-progress-bar | |
phpstan: | |
name: PHPStan | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install PHPStan | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/phpstan | |
- name: Run PHPStan | |
run: vendor-bin/phpstan/vendor/bin/phpstan analyse --no-progress | |
yamllint: | |
name: YAMLlint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Run YAMLlint | |
run: yamllint --format=github . | |
service-linter: | |
name: Service linter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install the service linter | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/service-linter | |
- name: Run the service linter | |
run: vendor-bin/service-linter/bin/lint-service-ids | |
depcheck: | |
name: Depcheck | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install depcheck | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/depcheck | |
- name: Check for unknown symbols (contao/contao) | |
run: vendor-bin/depcheck/vendor/bin/composer-dependency-analyser --config=depcheck.php | |
- name: Install the core bundle | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: core-bundle | |
- name: Check for unknown symbols (contao/core-bundle) | |
run: vendor-bin/depcheck/vendor/bin/composer-dependency-analyser --config=depcheck.php --composer-json=core-bundle/composer.json | |
tests: | |
name: PHP ${{ matrix.php }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [8.1, 8.2, 8.3] | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Initialize the database | |
run: | | |
sudo /etc/init.d/mysql start | |
mysql -uroot -proot -e "CREATE database contao_test" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Run the unit tests | |
run: vendor/bin/phpunit | |
- name: Run the functional tests with PDO MySQL | |
run: vendor/bin/phpunit --testsuite=functional | |
env: | |
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test | |
- name: Run the functional tests with MySQLi | |
run: vendor/bin/phpunit --testsuite=functional | |
env: | |
DATABASE_URL: mysqli://root:root@127.0.0.1:3306/contao_test | |
reverse: | |
name: Reverse order | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Run the unit tests in reverse order | |
run: vendor/bin/phpunit --order-by=reverse --extensions Contao\\CoreBundle\\Tests\\PhpunitExtension\\GlobalStateWatcher | |
nightly: | |
name: PHP 8.4 | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.4 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Initialize the database | |
run: | | |
sudo /etc/init.d/mysql start | |
mysql -uroot -proot -e "CREATE database contao_test" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
with: | |
composer-options: --ignore-platform-req=php+ | |
- name: Run the unit tests | |
run: vendor/bin/phpunit | |
- name: Run the functional tests | |
run: vendor/bin/phpunit --testsuite=functional | |
env: | |
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test | |
prefer-lowest: | |
name: Prefer lowest | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Initialize the database | |
run: | | |
sudo /etc/init.d/mysql start | |
mysql -uroot -proot -e "CREATE database contao_test" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
with: | |
dependency-versions: lowest | |
- name: Run the unit tests | |
run: vendor/bin/phpunit | |
- name: Run the functional tests with PDO MySQL | |
run: vendor/bin/phpunit --testsuite=functional | |
env: | |
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test | |
- name: Run the functional tests with MySQLi | |
run: vendor/bin/phpunit --testsuite=functional | |
env: | |
DATABASE_URL: mysqli://root:root@127.0.0.1:3306/contao_test | |
bundles: | |
name: Bundles | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Test the single bundles | |
run: | | |
bundles=(calendar-bundle comments-bundle core-bundle faq-bundle maker-bundle manager-bundle news-bundle newsletter-bundle) | |
for bundle in "${bundles[@]}"; do | |
cd $bundle | |
php -r ' | |
$data = json_decode(file_get_contents(__DIR__."/composer.json"), true); | |
if ("contao/core-bundle" !== $data["name"]) { | |
$data["repositories"][0]["type"] = "path"; | |
$data["repositories"][0]["url"] = "../core-bundle"; | |
} | |
if ("contao/news-bundle" !== $data["name"]) { | |
$data["repositories"][1]["type"] = "path"; | |
$data["repositories"][1]["url"] = "../news-bundle"; | |
} | |
if ("contao/test-case" !== $data["name"]) { | |
$data["repositories"][2]["type"] = "path"; | |
$data["repositories"][2]["url"] = "../test-case"; | |
} | |
file_put_contents(__DIR__."/composer.json", json_encode($data, JSON_UNESCAPED_SLASHES)); | |
' | |
composer install --no-interaction --no-progress | |
vendor/bin/phpunit | |
cd .. | |
done | |
monorepo-check: | |
name: Monorepo check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: json, zlib | |
coverage: none | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: Install Contao | |
uses: ramsey/composer-install@v3 | |
- name: Install the monorepo tools | |
uses: ramsey/composer-install@v3 | |
with: | |
working-directory: vendor-bin/monorepo-tools | |
- name: Validate the composer.json files | |
run: vendor-bin/monorepo-tools/vendor/bin/monorepo-tools composer-json --validate |