mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-03 19:53:19 +03:00
commit
c9dc7acc6d
30
.docker/Dockerfile
Normal file
30
.docker/Dockerfile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
FROM php:7.1-fpm
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
RUN apt-get install -y zlib1g-dev libpq-dev git libicu-dev libxml2-dev libpng-dev libjpeg-dev libmcrypt-dev libxslt-dev libfreetype6-dev \
|
||||||
|
&& docker-php-ext-configure intl \
|
||||||
|
&& docker-php-ext-install intl \
|
||||||
|
&& docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
|
||||||
|
&& docker-php-ext-install mysqli pdo pdo_mysql \
|
||||||
|
&& docker-php-ext-install zip \
|
||||||
|
&& docker-php-ext-install xml \
|
||||||
|
&& docker-php-ext-configure gd --with-png-dir=/usr/local/ --with-jpeg-dir=/usr/local/ --with-freetype-dir=/usr/local/ \
|
||||||
|
&& docker-php-ext-install gd \
|
||||||
|
&& docker-php-ext-install mcrypt \
|
||||||
|
&& docker-php-ext-install bcmath \
|
||||||
|
&& docker-php-ext-install soap \
|
||||||
|
&& docker-php-ext-install xsl \
|
||||||
|
&& docker-php-ext-install mbstring
|
||||||
|
|
||||||
|
RUN apt-get install -y wget
|
||||||
|
|
||||||
|
RUN wget -O /usr/bin/phpunit https://phar.phpunit.de/phpunit-7.phar && chmod +x /usr/bin/phpunit
|
||||||
|
RUN curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer
|
||||||
|
|
||||||
|
# Set timezone
|
||||||
|
RUN rm /etc/localtime
|
||||||
|
RUN ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
|
||||||
|
RUN "date"
|
||||||
|
|
||||||
|
WORKDIR /code
|
118
.travis.yml
118
.travis.yml
@ -1,40 +1,106 @@
|
|||||||
|
os: linux
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
language: php
|
language: php
|
||||||
|
|
||||||
|
if: tag IS blank
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- apache2
|
- apache2
|
||||||
- libapache2-mod-fastcgi
|
- libapache2-mod-fastcgi
|
||||||
|
|
||||||
sudo: required
|
before_install:
|
||||||
dist: trusty
|
- export LAST_TAG=`git describe --abbrev=0 --tags`
|
||||||
|
- export CURRENT_VERSION=v`cat VERSION`
|
||||||
|
|
||||||
php:
|
before_script: make before_script
|
||||||
- 7.1
|
|
||||||
- 7.2
|
|
||||||
|
|
||||||
matrix:
|
script: make test
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
jobs:
|
||||||
include:
|
include:
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
env: BRANCH=1.6.1.x
|
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||||
- php: 7.0
|
- php: 7.0
|
||||||
env: BRANCH=1.6.1.x
|
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||||
- php: 7.1
|
- php: 7.1
|
||||||
env: BRANCH=1.6.1.x
|
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
before_script:
|
- php: 5.6
|
||||||
- bash tests/bin/clone_prestashop.sh
|
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||||
- bash tests/bin/setup-apache.sh
|
- php: 7.0
|
||||||
- bash tests/bin/before_script.sh
|
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
script:
|
- php: 5.6
|
||||||
- bash tests/bin/script.sh
|
env: BRANCH=1.6.1.20 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.0
|
||||||
|
env: BRANCH=1.6.1.20 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.6.1.20 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
#deploy:
|
- php: 5.6
|
||||||
# skip_cleanup: true
|
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||||
# provider: script
|
- php: 7.0
|
||||||
# script: make
|
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||||
# on:
|
- php: 7.1
|
||||||
# php: 7.2
|
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||||
# branch: master
|
|
||||||
# condition: "$DEPLOY = true"
|
- php: 5.6
|
||||||
|
env: BRANCH=1.6.1.22 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.0
|
||||||
|
env: BRANCH=1.6.1.22 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.6.1.22 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
|
- php: 5.6
|
||||||
|
env: BRANCH=1.6.1.23 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.0
|
||||||
|
env: BRANCH=1.6.1.23 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.6.1.23 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
|
- php: 5.6
|
||||||
|
env: BRANCH=1.6.1.24 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.0
|
||||||
|
env: BRANCH=1.6.1.24 COMPOSER_IN_TESTS=1
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.6.1.24 COMPOSER_IN_TESTS=1
|
||||||
|
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.7.4.0
|
||||||
|
- php: 7.2
|
||||||
|
env: BRANCH=1.7.4.0
|
||||||
|
|
||||||
|
- php: 7.1
|
||||||
|
env: BRANCH=1.7.5.x
|
||||||
|
- php: 7.2
|
||||||
|
env: BRANCH=1.7.5.x
|
||||||
|
after_success: bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
||||||
|
- stage: deploy
|
||||||
|
before_script: skip
|
||||||
|
script: make build_archive
|
||||||
|
before_deploy:
|
||||||
|
- export VERSION=`cat VERSION`
|
||||||
|
- export ARCHIVE_NAME=/tmp/retailcrm-$VERSION.zip
|
||||||
|
- git config --local user.name "retailCRM"
|
||||||
|
- git config --local user.email "support@retailcrm.ru"
|
||||||
|
- export TRAVIS_TAG=v$VERSION
|
||||||
|
- git tag $TRAVIS_TAG
|
||||||
|
deploy:
|
||||||
|
provider: releases
|
||||||
|
token: $GITHUB_OAUTH_TOKEN
|
||||||
|
cleanup: false
|
||||||
|
file: $ARCHIVE_NAME
|
||||||
|
on:
|
||||||
|
condition: "$LAST_TAG != $CURRENT_VERSION"
|
||||||
|
if: branch = master AND type = push AND fork = false
|
||||||
|
after_deploy: make delete_archive
|
||||||
|
50
Makefile
50
Makefile
@ -1,17 +1,57 @@
|
|||||||
|
ROOT_DIR=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
PRESTASHOP_DIR=$(ROOT_DIR)/../PrestaShop
|
||||||
FILE = $(TRAVIS_BUILD_DIR)/VERSION
|
FILE = $(TRAVIS_BUILD_DIR)/VERSION
|
||||||
VERSION = `cat $(FILE)`
|
VERSION = `cat $(FILE)`
|
||||||
ARCHIVE_NAME = '/tmp/retailcrm-'$(VERSION)'.zip'
|
ARCHIVE_NAME = '/tmp/retailcrm-'$(VERSION)'.zip'
|
||||||
|
|
||||||
all: build_archive send_to_ftp delete_archive
|
.PHONY: build_archive delete_archive
|
||||||
|
|
||||||
build_archive:
|
build_archive:
|
||||||
zip -r $(ARCHIVE_NAME) ./retailcrm/*
|
zip -r $(ARCHIVE_NAME) ./retailcrm/*
|
||||||
zip -r /tmp/retailcrm.zip ./retailcrm/*
|
zip -r /tmp/retailcrm.zip ./retailcrm/*
|
||||||
|
|
||||||
send_to_ftp:
|
|
||||||
curl -T $(ARCHIVE_NAME) -u $(FTP_USER):$(FTP_PASSWORD) ftp://$(FTP_HOST)
|
|
||||||
curl -T /tmp/retailcrm.zip -u $(FTP_USER):$(FTP_PASSWORD) ftp://$(FTP_HOST)
|
|
||||||
|
|
||||||
delete_archive:
|
delete_archive:
|
||||||
rm -f $(ARCHIVE_NAME)
|
rm -f $(ARCHIVE_NAME)
|
||||||
rm -f /tmp/retailcrm.zip
|
rm -f /tmp/retailcrm.zip
|
||||||
|
|
||||||
|
composer: clone_prestashop
|
||||||
|
@cd $(PRESTASHOP_DIR) && git checkout $(BRANCH)
|
||||||
|
ifeq ($(COMPOSER_IN_TESTS),1)
|
||||||
|
@cd $(PRESTASHOP_DIR)/tests && composer install
|
||||||
|
else
|
||||||
|
@cd $(PRESTASHOP_DIR) && composer install --prefer-dist --no-interaction --no-progress
|
||||||
|
endif
|
||||||
|
|
||||||
|
clone_prestashop:
|
||||||
|
cd $(ROOT_DIR)/../ && git clone https://github.com/PrestaShop/PrestaShop
|
||||||
|
|
||||||
|
setup_apache:
|
||||||
|
bash $(PRESTASHOP_DIR)/travis-scripts/setup-php-fpm.sh
|
||||||
|
echo "* Preparing Apache ..."
|
||||||
|
sudo a2enmod rewrite actions fastcgi alias
|
||||||
|
# Use default config
|
||||||
|
sudo cp -f $(PRESTASHOP_DIR)/tests/travis-ci-apache-vhost /etc/apache2/sites-available/000-default.conf
|
||||||
|
sudo sed -e "s?%PRESTASHOP_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
||||||
|
sudo chmod 777 -R $(HOME)
|
||||||
|
# Starting Apache
|
||||||
|
sudo service apache2 restart
|
||||||
|
|
||||||
|
before_script: composer
|
||||||
|
ifneq ($(COMPOSER_IN_TESTS),1)
|
||||||
|
ifeq ("$(wildcard $(PRESTASHOP_DIR)/tests/parameters.yml.travis)","")
|
||||||
|
cd $(PRESTASHOP_DIR) && cp tests/parameters.yml.travis app/config/parameters.yml
|
||||||
|
else
|
||||||
|
cd $(PRESTASHOP_DIR) && cp tests-legacy/parameters.yml.travis app/config/parameters.yml
|
||||||
|
endif
|
||||||
|
cd $(PRESTASHOP_DIR) && bash travis-scripts/install-prestashop
|
||||||
|
else
|
||||||
|
cd $(PRESTASHOP_DIR) && bash travis-scripts/install-prestashop.sh
|
||||||
|
endif
|
||||||
|
|
||||||
|
test:
|
||||||
|
ifeq ($(COMPOSER_IN_TESTS),1)
|
||||||
|
phpunit -c phpunit.xml.dist
|
||||||
|
else
|
||||||
|
cd $(PRESTASHOP_DIR) && composer run-script create-test-db --timeout=0
|
||||||
|
cd $(PRESTASHOP_DIR) && php vendor/bin/phpunit -c $(ROOT_DIR)/phpunit.xml.dist
|
||||||
|
endif
|
||||||
|
25
docker-compose.yml
Normal file
25
docker-compose.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
build:
|
||||||
|
context: ./.docker
|
||||||
|
volumes:
|
||||||
|
- ./:/code
|
||||||
|
links:
|
||||||
|
- "mysql"
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
environment:
|
||||||
|
- DB_NAME=presta
|
||||||
|
- DB_USER=presta
|
||||||
|
- DB_PASS=presta
|
||||||
|
- DB_HOST=presta
|
||||||
|
mysql:
|
||||||
|
image: mysql:5.7
|
||||||
|
environment:
|
||||||
|
- MYSQL_DATABASE=presta
|
||||||
|
- MYSQL_USER=presta
|
||||||
|
- MYSQL_PASSWORD=presta
|
||||||
|
- MYSQL_ROOT_PASSWORD=root
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phpunit
|
<phpunit
|
||||||
bootstrap="tests/phpunit/bootstrap.php"
|
bootstrap="tests/bootstrap.php"
|
||||||
backupGlobals="false"
|
backupGlobals="false"
|
||||||
colors="true"
|
colors="true"
|
||||||
convertErrorsToExceptions="true"
|
convertErrorsToExceptions="true"
|
||||||
@ -12,16 +12,16 @@
|
|||||||
syntaxCheck="true"
|
syntaxCheck="true"
|
||||||
>
|
>
|
||||||
<testsuites>
|
<testsuites>
|
||||||
<testsuite name="Retailcrm PrestaShop Test Suite">
|
<testsuite name="PrestaShop retailCRM Test Suite">
|
||||||
<directory>tests/phpunit</directory>
|
<directory suffix="Test.php">tests</directory>
|
||||||
|
<exclude>tests/helpers</exclude>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
<filter>
|
<filter>
|
||||||
<whitelist addUncoveredFilesFromWhitelist="true">
|
<whitelist>
|
||||||
<directory suffix=".php">retailcrm</directory>
|
<directory suffix=".php">retailcrm</directory>
|
||||||
<exclude>
|
<exclude>
|
||||||
<directory suffix=".php">retailcrm/translations</directory>
|
<directory suffix=".php">retailcrm/translations</directory>
|
||||||
<directory suffix=".php">retailcrm/job</directory>
|
|
||||||
<file>bootstrap.php</file>
|
<file>bootstrap.php</file>
|
||||||
<file>index.php</file>
|
<file>index.php</file>
|
||||||
<file>logo.gif</file>
|
<file>logo.gif</file>
|
||||||
@ -30,4 +30,7 @@
|
|||||||
</exclude>
|
</exclude>
|
||||||
</whitelist>
|
</whitelist>
|
||||||
</filter>
|
</filter>
|
||||||
|
<logging>
|
||||||
|
<log type="coverage-clover" target="coverage.xml"/>
|
||||||
|
</logging>
|
||||||
</phpunit>
|
</phpunit>
|
@ -1,21 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [ -z $TRAVIS_BUILD_DIR ]; then
|
|
||||||
exit 0;
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRESTASHOP_DIR=$TRAVIS_BUILD_DIR/../PrestaShop
|
|
||||||
|
|
||||||
cd $PRESTASHOP_DIR
|
|
||||||
|
|
||||||
if [ -z $BRANCH ]; then
|
|
||||||
if [ -f "tests/parameters.yml.travis" ]; then
|
|
||||||
cp tests/parameters.yml.travis app/config/parameters.yml
|
|
||||||
else
|
|
||||||
cp tests-legacy/parameters.yml.travis app/config/parameters.yml
|
|
||||||
fi
|
|
||||||
|
|
||||||
bash travis-scripts/install-prestashop
|
|
||||||
else
|
|
||||||
bash travis-scripts/install-prestashop.sh
|
|
||||||
fi
|
|
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [ -z $TRAVIS_BUILD_DIR ]; then
|
|
||||||
exit 0;
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRESTASHOP_DIR=$TRAVIS_BUILD_DIR/../PrestaShop
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
git clone https://github.com/PrestaShop/PrestaShop
|
|
||||||
cd PrestaShop
|
|
||||||
|
|
||||||
if ! [ -z $BRANCH ]; then
|
|
||||||
git checkout $BRANCH;
|
|
||||||
cd tests
|
|
||||||
composer install
|
|
||||||
else
|
|
||||||
composer install --prefer-dist --no-interaction --no-progress
|
|
||||||
fi
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [ -z $TRAVIS_BUILD_DIR ]; then
|
|
||||||
exit 0;
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRESTASHOP_DIR=$TRAVIS_BUILD_DIR/../PrestaShop
|
|
||||||
|
|
||||||
if ! [ -z $BRANCH ]; then
|
|
||||||
phpunit
|
|
||||||
else
|
|
||||||
cd $PRESTASHOP_DIR
|
|
||||||
composer run-script create-test-db --timeout=0
|
|
||||||
php ../PrestaShop/vendor/bin/phpunit -c $TRAVIS_BUILD_DIR/phpunit.xml.dist
|
|
||||||
fi
|
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
PRESTASHOP_DIR=$TRAVIS_BUILD_DIR/../PrestaShop
|
|
||||||
|
|
||||||
cd $PRESTASHOP_DIR
|
|
||||||
|
|
||||||
bash travis-scripts/setup-php-fpm.sh
|
|
||||||
|
|
||||||
echo "* Preparing Apache ...";
|
|
||||||
|
|
||||||
sudo a2enmod rewrite actions fastcgi alias
|
|
||||||
|
|
||||||
# Use default config
|
|
||||||
sudo cp -f tests/travis-ci-apache-vhost /etc/apache2/sites-available/000-default.conf
|
|
||||||
sudo sed -e "s?%PRESTASHOP_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
|
|
||||||
sudo chmod 777 -R $HOME
|
|
||||||
|
|
||||||
# Starting Apache
|
|
||||||
sudo service apache2 restart
|
|
18
tests/bootstrap.php
Normal file
18
tests/bootstrap.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/../../PrestaShop/tests-legacy')) {
|
||||||
|
require_once __DIR__ . '/../../PrestaShop/tests-legacy/bootstrap.php';
|
||||||
|
} else {
|
||||||
|
require_once __DIR__ . '/../../PrestaShop/tests/bootstrap.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../PrestaShop/config/config.inc.php';
|
||||||
|
require_once __DIR__ . '/../../PrestaShop/config/defines_uri.inc.php';
|
||||||
|
require_once __DIR__ . '/../retailcrm/bootstrap.php';
|
||||||
|
require_once __DIR__ . '/../retailcrm/retailcrm.php';
|
||||||
|
require_once __DIR__ . '/../../PrestaShop/init.php';
|
||||||
|
require_once __DIR__ . '/helpers/RetailcrmTestCase.php';
|
||||||
|
require_once __DIR__ . '/helpers/RetailcrmTestHelper.php';
|
||||||
|
|
||||||
|
$module = new RetailCRM();
|
||||||
|
$module->install();
|
@ -1,5 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
if (class_exists('LegacyTests\Unit\ContextMocker')) {
|
||||||
|
class_alias('LegacyTests\Unit\ContextMocker', 'Tests\Unit\ContextMocker');
|
||||||
|
}
|
||||||
|
|
||||||
abstract class RetailcrmTestCase extends \PHPUnit\Framework\TestCase
|
abstract class RetailcrmTestCase extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
protected $contextMock;
|
protected $contextMock;
|
||||||
@ -9,7 +13,7 @@ abstract class RetailcrmTestCase extends \PHPUnit\Framework\TestCase
|
|||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
||||||
if (version_compare(_PS_VERSION_, '1.7', '>')) {
|
if (version_compare(_PS_VERSION_, '1.7', '>')) {
|
||||||
$contextMocker = new \LegacyTests\Unit\ContextMocker();
|
$contextMocker = new \Tests\Unit\ContextMocker();
|
||||||
$this->contextMock = $contextMocker->mockContext();
|
$this->contextMock = $contextMocker->mockContext();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (\file_exists(__DIR__ . '/../../../PrestaShop/tests-legacy')) {
|
|
||||||
require_once __DIR__ . '/../../../PrestaShop/tests-legacy/bootstrap.php';
|
|
||||||
} else {
|
|
||||||
require_once __DIR__ . '/../../../PrestaShop/tests/bootstrap.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once dirname(__DIR__) . '../../../PrestaShop/config/config.inc.php';
|
|
||||||
require_once dirname(__DIR__) . '../../../PrestaShop/config/defines_uri.inc.php';
|
|
||||||
require_once dirname(__DIR__) . '../../retailcrm/bootstrap.php';
|
|
||||||
require_once __DIR__ . '/../../retailcrm/retailcrm.php';
|
|
||||||
require_once __DIR__ . '/../helpers/RetailcrmTestCase.php';
|
|
||||||
require_once __DIR__ . '/../helpers/RetailcrmTestHelper.php';
|
|
||||||
require_once dirname(__DIR__) . '../../../PrestaShop/init.php';
|
|
||||||
|
|
||||||
$module = new RetailCRM();
|
|
||||||
$module->install();
|
|
Loading…
x
Reference in New Issue
Block a user