Merge pull request #37196 from PrestaShop/dependabot/npm_and_yarn/tes… #183
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: Lint | |
on: | |
push: | |
pull_request: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
stylelint: | |
name: SCSS Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16.x' | |
- name: BackOffice Theme `new-theme` | |
run: cd ./admin-dev/themes/new-theme && npm ci && npm run scss-lint | |
- name: BackOffice Theme `default` | |
run: cd ./admin-dev/themes/default && npm ci && npm run scss-lint | |
eslint: | |
name: ESLint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16.x' | |
- name: Validate npm config | |
run: >- | |
(cd admin-dev/themes/default && npm ci) | |
&& (cd admin-dev/themes/new-theme && npm ci) | |
&& (cd themes && npm ci) | |
- name: BackOffice Theme `default` | |
run: cd ./admin-dev/themes/default && npm ci && npm run lint | |
- name: BackOffice Theme `new-theme` | |
run: cd ./admin-dev/themes/new-theme && npm ci && npm run lint | |
yamllint_sf: | |
name: YAML Lint (Symfony Check) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Run Lint Yaml on `app` | |
run: php bin/console lint:yaml app --parse-tags | |
- name: Run Lint Yaml on `src` tags are allowed | |
run: php bin/console lint:yaml src --parse-tags | |
- name: Run Lint Yaml on `.t9n.yml` | |
run: php bin/console lint:yaml .t9n.yml | |
yamllint: | |
name: YAML Lint (YamlLint Check) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install YAMLLint | |
run: | | |
pip install --user yamllint | |
- uses: actions/checkout@v4 | |
- name: yamllint on `.github` | |
run: yamllint -c .github/workflows/yamllint/.yamllint.yml .github | |
- name: yamllint on `app` | |
run: yamllint -c .github/workflows/yamllint/.yamllint.yml app | |
- name: yamllint on `src` | |
run: yamllint -c .github/workflows/yamllint/.yamllint.yml src | |
- name: yamllint on `.t9n.yml` | |
run: yamllint -c .github/workflows/yamllint/.yamllint.yml .t9n.yml | |
twiglint: | |
name: Twig Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Run Lint Twig | |
run: php bin/console lint:twig src/PrestaShopBundle/Resources/views/ | |
legacy_link_lint: | |
name: Legacy Link Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Run Legacy Link Lint | |
run: php bin/console prestashop:linter:legacy-link | |
security_attribute_lint: | |
name: Admin Security Attribute Linter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
# Now install the shop so that modules controllers are also checked | |
- name: Setup Environment | |
timeout-minutes: 15 | |
uses: ./.github/actions/setup-env | |
with: | |
PHP_VERSION: 8.1 | |
ENABLE_SSL: 'true' | |
INSTALL_AUTO: 'true' | |
- name: Setup Environment failure | |
uses: ./.github/actions/setup-env-export-logs | |
with: | |
DOCKER_PREFIX: prestashop | |
ARTIFACT_NAME: setup-symfony-console-${{ matrix.app-id }} | |
ENABLE_SSL: 'true' | |
INSTALL_AUTO: 'false' | |
if: failure() | |
- name: Run Admin Security Attribute Linter (inside the docker so installed modules are also scanned) | |
run: | | |
echo Searching for routes without security | |
docker exec prestashop-prestashop-git-1 php bin/console prestashop:linter:security-attribute find-missing |