Skip to content

Merge pull request #37196 from PrestaShop/dependabot/npm_and_yarn/tes… #183

Merge pull request #37196 from PrestaShop/dependabot/npm_and_yarn/tes…

Merge pull request #37196 from PrestaShop/dependabot/npm_and_yarn/tes… #183

Workflow file for this run

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