include ESLint and stylelint checks in build scripts using Node
This commit is contained in:
parent
d4edbb6423
commit
7ca687a85c
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,7 +1,9 @@
|
||||
composer.lock
|
||||
package-lock.json
|
||||
/vendor/
|
||||
/node_modules/
|
||||
/dist/
|
||||
.idea
|
||||
.phpunit.result.cache
|
||||
**/*.min.css
|
||||
**/*.min.js
|
||||
|
@ -9,8 +9,10 @@ php:
|
||||
- '7.3'
|
||||
before_script:
|
||||
- composer install
|
||||
- npm install
|
||||
script:
|
||||
- composer test-all
|
||||
- composer test
|
||||
- composer lint-all
|
||||
notifications:
|
||||
slack:
|
||||
secure: "R40BhRCETuDule7lz4oGN+qyLvd7dBmuEu6hVELNhWg3DgCgYOXyrWR2dgxsWsAZ3sldpWGfTJKzSShdDanGCpygpYzuvXxjt23YYJ2ihrohYJwiGIhkR9c24LF2yvWBQDBNZaeLBQ3o6FSnbkTBsmRy5ShgKehfKCOQTKmI1yWHi3fvkMElTorrJc710O41yy/bRKBnoIYd4ZfpLMSSVGCPzR5lZPZy3EiGWXPgYdY7jGMI7ADsy+T5VWHyFqgSSJz/U2bcryKzF08FAry8pyu9lN3r61kXHfVCCJX+kcsFxW9yCfuPLnLu14O776y3U6zrX9is+8mEfkMuTXFaL5o8+iq32AmFjTIDQn6o9BKHsknfmppjwZiLgFTp1T7Z/XR6I4nyK9Z5HXDU2HS0eCUknbgXlMLhxWpKhkyx4rQELuvVlgD+u7yRYraawc3v1ycqaPj0S0G5QBFljSuxsZgNnX1hs8VmgafIvOq5qm4ZVVBhhbz+LgvW1m9COr8DDPVhWWdpcWzF8jtkqC3m4Q/1Ssc6T/MbJMgcXRq/C4DlfEs4aYGYfSl7gLtF2PwlEQCppKJwx0fEPkcbZZ1PjpzF+JMwwRmWS88R0oRyThOyCwlG50c+ktB94pJC+sP1aQZrLAd4WDKUPD9vJTas86V3XBjTUJPs8HQaBDFqFdg="
|
||||
|
24
RoboFile.php
24
RoboFile.php
@ -26,6 +26,7 @@ class RoboFile extends Tasks {
|
||||
const OPT_SKIPTEST = 'skipTests';
|
||||
const OPT_SKIPSTYLE = 'skipStyle';
|
||||
const OPT_MINIFY = 'minify';
|
||||
const OPT_NODE = 'node';
|
||||
|
||||
/**
|
||||
* Version tag (read from composer.json).
|
||||
@ -96,9 +97,25 @@ class RoboFile extends Tasks {
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testCS() {
|
||||
$this->say( 'Executing PHPCS tests...' );
|
||||
public function testCS(
|
||||
$opts = array(
|
||||
self::OPT_TARGET => 'dist',
|
||||
self::OPT_SKIPTEST => false,
|
||||
self::OPT_SKIPSTYLE => false,
|
||||
self::OPT_MINIFY => true,
|
||||
self::OPT_NODE => false,
|
||||
)
|
||||
) {
|
||||
$this->say( 'Executing PHPCS...' );
|
||||
$this->_exec( __DIR__ . '/vendor/bin/phpcs --standard=phpcs.xml -s' );
|
||||
|
||||
if ( $opts[self::OPT_NODE] ) {
|
||||
$this->say( 'Executing ESLint...' );
|
||||
$this->_exec( __DIR__ . '/node_modules/eslint/bin/eslint.js ' . __DIR__ . '/scripts/liveticker.js' );
|
||||
|
||||
$this->say( 'Executing StyleLint...' );
|
||||
$this->_exec( __DIR__ . '/node_modules/stylelint/bin/stylelint.js ' . __DIR__ . '/styles/liveticker.css' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,6 +131,7 @@ class RoboFile extends Tasks {
|
||||
self::OPT_SKIPTEST => false,
|
||||
self::OPT_SKIPSTYLE => false,
|
||||
self::OPT_MINIFY => true,
|
||||
self::OPT_NODE => false,
|
||||
)
|
||||
) {
|
||||
$this->clean( $opts );
|
||||
@ -125,7 +143,7 @@ class RoboFile extends Tasks {
|
||||
if ( isset( $opts[ self::OPT_SKIPSTYLE ] ) && true === $opts[ self::OPT_SKIPSTYLE ] ) {
|
||||
$this->say( 'Style checks skipped' );
|
||||
} else {
|
||||
$this->testCS();
|
||||
$this->testCS($opts);
|
||||
}
|
||||
$this->bundle();
|
||||
}
|
||||
|
@ -32,8 +32,7 @@
|
||||
"wp-coding-standards/wpcs": "^2.1",
|
||||
"patchwork/jsqueeze": "^2.0",
|
||||
"natxet/cssmin": "^3.0",
|
||||
"matthiasmullie/minify": "^1.3",
|
||||
"npm-asset/eslint-config-wordpress": "^2.0"
|
||||
"matthiasmullie/minify": "^1.3"
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
@ -54,28 +53,26 @@
|
||||
"@minify",
|
||||
"robo deploy:all"
|
||||
],
|
||||
"test-all": [
|
||||
"@test",
|
||||
"@test-cs"
|
||||
],
|
||||
"test": [
|
||||
"phpunit"
|
||||
],
|
||||
"test-cs": [
|
||||
"lint-all": [
|
||||
"@lint-php",
|
||||
"@lint-css",
|
||||
"@lint-js"
|
||||
],
|
||||
"lint-php": [
|
||||
"phpcs --standard=phpcs.xml -s"
|
||||
],
|
||||
"fix-cs": [
|
||||
"phpcbf --standard=phpcs.xml"
|
||||
"lint-css": [
|
||||
"./node_modules/stylelint/bin/stylelint.js styles/liveticker.css"
|
||||
],
|
||||
"lint-js": [
|
||||
"./node_modules/eslint/bin/eslint.js scripts/liveticker.js"
|
||||
],
|
||||
"minify": [
|
||||
"minifycss styles/liveticker.css > styles/liveticker.min.css",
|
||||
"minifyjs scripts/liveticker.js > scripts/liveticker.min.js"
|
||||
]
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://asset-packagist.org"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
88
package-lock.json
generated
88
package-lock.json
generated
@ -1,88 +0,0 @@
|
||||
{
|
||||
"name": "wp-liveticker2",
|
||||
"version": "1.0.0-beta",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"cssesc": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-1.0.1.tgz",
|
||||
"integrity": "sha512-S2hzrpWvE6G/rW7i7IxJfWBYn27QWfOIncUW++8Rbo1VB5zsJDSVPcnI+Q8z7rhxT6/yZeLOCja4cZnghJrNGA=="
|
||||
},
|
||||
"indexes-of": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
|
||||
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.11",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
||||
},
|
||||
"postcss-media-query-parser": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
|
||||
"integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ="
|
||||
},
|
||||
"postcss-resolve-nested-selector": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
|
||||
"integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4="
|
||||
},
|
||||
"postcss-selector-parser": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-4.0.0.tgz",
|
||||
"integrity": "sha512-5h+MvEjnzu1qy6MabjuoPatsGAjjDV9B24e7Cktjl+ClNtjVjmvAXjOFQr1u7RlWULKNGYaYVE4s+DIIQ4bOGA==",
|
||||
"requires": {
|
||||
"cssesc": "^1.0.1",
|
||||
"indexes-of": "^1.0.1",
|
||||
"uniq": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"postcss-value-parser": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
|
||||
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
|
||||
},
|
||||
"stylelint-config-recommended": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.1.0.tgz",
|
||||
"integrity": "sha512-ajMbivOD7JxdsnlS5945KYhvt7L/HwN6YeYF2BH6kE4UCLJR0YvXMf+2j7nQpJyYLZx9uZzU5G1ZOSBiWAc6yA=="
|
||||
},
|
||||
"stylelint-config-recommended-scss": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-3.2.0.tgz",
|
||||
"integrity": "sha512-M8BFHMRf8KNz5EQPKJd8nMCGmBd2o5coDEObfHVbEkyLDgjIf1V+U5dHjaGgvhm0zToUxshxN+Gc5wpbOOew4g==",
|
||||
"requires": {
|
||||
"stylelint-config-recommended": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-config-wordpress": {
|
||||
"version": "13.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-wordpress/-/stylelint-config-wordpress-13.1.0.tgz",
|
||||
"integrity": "sha512-dpKj2/d3/XjDVoOvQzd54GoM8Rj5zldluOZKkVhBCc4JYMc6r1VYL5hpcgIjqy/i2Hyqg4Rh7zTafE/2AWq//w==",
|
||||
"requires": {
|
||||
"stylelint-config-recommended": "^2.1.0",
|
||||
"stylelint-config-recommended-scss": "^3.2.0",
|
||||
"stylelint-scss": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"stylelint-scss": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.3.2.tgz",
|
||||
"integrity": "sha512-0x+nD1heoMJYOfi3FfGcz3Hrwhcm+Qyq+BuvoBv5v9xrZZ1aziRXQauuhjwb87gWAa9MBzxhfUqBnvTUrHlLjA==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.10",
|
||||
"postcss-media-query-parser": "^0.2.3",
|
||||
"postcss-resolve-nested-selector": "^0.1.1",
|
||||
"postcss-selector-parser": "^4.0.0",
|
||||
"postcss-value-parser": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"uniq": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
|
||||
"integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
|
||||
}
|
||||
}
|
||||
}
|
@ -4,7 +4,10 @@
|
||||
"description": "A simple Liveticker for Wordpress.",
|
||||
"author": "Stefan Kalscheuer",
|
||||
"license": "GPL-2.0+",
|
||||
"dependencies": {
|
||||
"stylelint-config-wordpress": "^13.1.0"
|
||||
"devDependencies": {
|
||||
"eslint": "^6",
|
||||
"eslint-config-wordpress": "^2.0",
|
||||
"stylelint": "^10.1",
|
||||
"stylelint-config-wordpress": "^14.0"
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user