Skip to content

Commit

Permalink
Merge pull request #143 from PrestaShop/dev
Browse files Browse the repository at this point in the history
Release 2.1.0
  • Loading branch information
Progi1984 authored Apr 25, 2022
2 parents 51d5277 + c5bfde3 commit 4feccca
Show file tree
Hide file tree
Showing 71 changed files with 4,789 additions and 5,732 deletions.
14 changes: 6 additions & 8 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,14 @@ module.exports = {
window: true,
},
parserOptions: {
parser: 'babel-eslint',
parser: '@babel/eslint-parser',
},
extends: ['prestashop', 'plugin:vue/strongly-recommended'],
plugins: ['import', 'vue'],
rules: {
'class-methods-use-this': 0,
'func-names': 0,
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: ['tests/**/*.js', '.webpack/**/*.js'],
},
],
'import/no-extraneous-dependencies': 0,
'max-len': ['error', {code: 120}],
'no-alert': 0,
'no-bitwise': 0,
Expand All @@ -53,7 +48,10 @@ module.exports = {
'vue/require-default-prop': 0,
},
settings: {
'import/resolver': 'webpack',
'import/resolver': {
node: {},
webpack: 'webpack.config.js',
},
},
overrides: [
{
Expand Down
22 changes: 16 additions & 6 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
name: Build & Release draft

on: [push, pull_request]

jobs:
Expand All @@ -22,23 +21,34 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v1
with:
node-version: 12.x
node-version: 14.x

- run: npm install

- run: yarn install
- name: Build PrestaShop assets
run: |
npm --prefix ~/PrestaShop/admin-dev/themes/new-theme install
npm --prefix ~/PrestaShop/admin-dev/themes/new-theme run build
- name: Build JS dependencies
run: |
yarn --cwd ~/PrestaShop/modules/blockwishlist run build
npm --prefix ~/PrestaShop/modules/blockwishlist run build
rm -rf node_modules
- name: Install composer dependencies
run: composer install --no-dev -o

- name: Clean-up project
uses: PrestaShopCorp/[email protected]
with:
with:
paths: node_modules

- name: Prepare auto-index tool
run: composer global require prestashop/autoindex

- name: Generate index.php
run: ~/.composer/vendor/bin/autoindex

- name: Create & upload artifact
uses: actions/upload-artifact@v1
with:
Expand Down Expand Up @@ -72,7 +82,7 @@ jobs:
assets=`bin/hub api -t repos/${{ github.repository }}/releases/${{ steps.release_info.outputs.id }}/assets | awk '/\].url/ { print $2 }'`
for asset in $assets
do
bin/hub api -X DELETE $asset
bin/hub api -X DELETE $asset
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
uses: actions/[email protected]

- name: lint js dependencies
uses: PrestaShopCorp/github-action-lint-js/[email protected]
uses: PrestaShopCorp/github-action-lint-js/14@master
with:
cmd: yarn
path: .
52 changes: 44 additions & 8 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,79 @@ name: PHP tests
on: [push, pull_request]
jobs:
php-linter:
name: PHP Syntax check 5.6|7.2|7.3
name: PHP Syntax check 5.6 => 8.1
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]

- name: PHP syntax checker 5.6
uses: prestashop/github-action-php-lint/5.6@master

- name: PHP syntax checker 7.2
uses: prestashop/github-action-php-lint/7.2@master

- name: PHP syntax checker 7.3
uses: prestashop/github-action-php-lint/7.3@master

- name: PHP syntax checker 7.4
uses: prestashop/github-action-php-lint/7.4@master

- name: PHP syntax checker 8.0
uses: prestashop/github-action-php-lint/8.0@master

- name: PHP syntax checker 8.1
uses: prestashop/github-action-php-lint/8.1@master

# Check the PHP code follow the coding standards
php-cs-fixer:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'

- name: Checkout
uses: actions/[email protected]

- name: Cache dependencies
uses: actions/cache@v2
with:
path: vendor
key: php-${{ hashFiles('composer.lock') }}

- name: Install dependencies
run: composer install

- name: Run PHP-CS-Fixer
uses: prestashopcorp/github-action-php-cs-fixer@master
run: ./vendor/bin/php-cs-fixer fix --dry-run --diff --using-cache=no --diff-format udiff

# Run PHPStan against the module and a PrestaShop release
phpstan:
name: PHPStan
runs-on: ubuntu-latest
strategy:
matrix:
presta-versions: ['1.7.6.3', 'latest']
presta-versions: ['1.7.6', '1.7.7', '1.7.8', 'latest']
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'

- name: Checkout
uses: actions/[email protected]

# Add vendor folder in cache to make next builds faster
- name: Cache vendor folder
uses: actions/cache@v1
with:
path: vendor
key: php-${{ hashFiles('composer.lock') }}

# Add composer local folder in cache to make next builds faster
- name: Cache composer folder
uses: actions/cache@v1
with:
Expand All @@ -45,8 +83,6 @@ jobs:

- run: composer install

- name: Pull PrestaShop files (Tag ${{ matrix.presta-versions }})
run: docker run -tid --rm -v ps-volume:/var/www/html --name temp-ps prestashop/prestashop:${{ matrix.presta-versions }}

- name : Run PHPStan
run: docker run --rm --volumes-from temp-ps -v $PWD:/web/module -e _PS_ROOT_DIR_=/var/www/html --workdir=/web/module phpstan/phpstan:0.12.32 analyse --configuration=/web/module/tests/phpstan/phpstan.neon --error-format github
# Docker images prestashop/prestashop may be used, even if the shop remains uninstalled
- name: Execute PHPStan on PrestaShop (Tag ${{ matrix.presta-versions }})
run: ./tests/phpstan.sh ${{ matrix.presta-versions }}
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# php

vendor
.php_cs.cache
/config_*.xml
/vendor/
/.php_cs.cache

# vim

Expand Down
39 changes: 36 additions & 3 deletions .webpack/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ module.exports = {
'./_dev/front/js/components/Create',
'./_dev/front/js/components/AddToWishlist',
],
backoffice: ['./_dev/back/js/backoffice.js', './_dev/back/scss/backoffice.scss'],
backoffice: [
'./_dev/back/js/backoffice.js',
'./_dev/back/scss/backoffice.scss',
],
form: ['./_dev/back/js/form.js', './_dev/back/scss/backoffice.scss'],
},
output: {
Expand All @@ -75,10 +78,10 @@ module.exports = {
libraryTarget: 'window',
library: '[name]',
sourceMapFilename: '[name].[hash:8].map',
chunkFilename: '[id].[hash:8].js',
chunkFilename: '[name].js',
},
resolve: {
extensions: ['.js', '.vue', '.json', '.mjs'],
extensions: ['.js', '.vue', '.json', '.mjs', '.ts'],
alias: {
'@js': path.resolve(__dirname, '../_dev/front/js'),
'@pages': path.resolve(__dirname, '../_dev/front/js/pages'),
Expand All @@ -87,6 +90,10 @@ module.exports = {
'@containers': path.resolve(__dirname, '../_dev/front/js/container'),
'@constants': path.resolve(__dirname, '../_dev/front/js/constants'),
'@scss': path.resolve(__dirname, '../_dev/front/scss'),
'@PSJs': path.resolve(
__dirname,
'../../../admin-dev/themes/new-theme/js',
),
'@node_modules': path.resolve(__dirname, '../node_modules'),
vue: 'vue/dist/vue.esm.js',
},
Expand Down Expand Up @@ -115,6 +122,15 @@ module.exports = {
test: /\.vue$/,
loader: 'vue-loader',
},
{
test: /\.ts?$/,
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
onlyCompileBundledFiles: true,
},
exclude: /node_modules/,
},
{
test: /\.css$/,
use: [
Expand Down Expand Up @@ -162,6 +178,23 @@ module.exports = {
},
],
},
optimization: {
splitChunks: {
cacheGroups: {
graphql: {
test: /[\\/]node_modules[\\/](graphql|graphql-tag|graphql-tools|graphql-type-json)[\\/]/,
name: 'graphql',
chunks: 'all',
},
vendors: {
// eslint-disable-next-line max-len
test: /[\\/]node_modules[\\/](core-js|apollo-utilities|apollo-client|apollo-link|apollo-cache-inmemory|apollo-link-http|apollo-link-schema|vue|vue-apollo)[\\/]/,
name: 'vendors',
chunks: 'all',
},
},
},
},
plugins: [
new FixStyleOnlyEntriesPlugin(),
new CleanWebpackPlugin({
Expand Down
26 changes: 12 additions & 14 deletions .webpack/dev.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
const path = require('path');
const {merge} = require('webpack-merge');
const common = require('./common.js');

/**
* Returns the development webpack config,
* by merging development specific configuration with the common one.
*/
function devConfig() {
const dev = Object.assign(
common,
{
devtool: 'inline-source-map',
devServer: {
hot: true,
contentBase: path.resolve(__dirname, '/../public'),
publicPath: '/',
},
const devConfig = () => (merge(
common,
{
devtool: 'inline-source-map',
devServer: {
hot: true,
contentBase: path.resolve(__dirname, '/../public'),
publicPath: '/',
},
);

return dev;
}
},
)
);

module.exports = devConfig;
42 changes: 19 additions & 23 deletions .webpack/prod.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,34 @@
const webpack = require('webpack');
const TerserPlugin = require('terser-webpack-plugin');
const {merge} = require('webpack-merge');
const common = require('./common.js');

/**
* Returns the production webpack config,
* by merging production specific configuration with the common one.
*
*/
function prodConfig() {
const prod = Object.assign(common, {
stats: 'minimal',
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: true,
terserOptions: {
output: {
comments: /@license/i,
},
},
extractComments: false,
}),
],
},
});

// Required for Vue production environment
prod.plugins.push(
const prodConfig = () => merge(common, {
stats: 'minimal',
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: true,
terserOptions: {
output: {
comments: /@license/i,
},
},
extractComments: false,
}),
],
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production'),
}),
);

return prod;
}
],
});

module.exports = prodConfig;
5 changes: 4 additions & 1 deletion _dev/back/js/backoffice.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ tabButtons.forEach((button) => {
const tabs = document.querySelectorAll('.wishlist-tab');

tabs.forEach((tab) => {
if (tab.classList.contains('active') && tab.dataset.tab !== button.dataset.tab) {
if (
tab.classList.contains('active')
&& tab.dataset.tab !== button.dataset.tab
) {
tab.classList.remove('active');
}

Expand Down
2 changes: 1 addition & 1 deletion _dev/back/js/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@
* International Registered Trademark & Property of PrestaShop SA
*/

import TranslatableInput from '../../../../../admin-dev/themes/new-theme/js/components/translatable-input';
import TranslatableInput from '@PSJs/components/translatable-input';

new TranslatableInput();
Loading

0 comments on commit 4feccca

Please sign in to comment.