mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-02 19:33:14 +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
|
||||
|
||||
if: tag IS blank
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- apache2
|
||||
- libapache2-mod-fastcgi
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
before_install:
|
||||
- export LAST_TAG=`git describe --abbrev=0 --tags`
|
||||
- export CURRENT_VERSION=v`cat VERSION`
|
||||
|
||||
php:
|
||||
- 7.1
|
||||
- 7.2
|
||||
before_script: make before_script
|
||||
|
||||
matrix:
|
||||
script: make test
|
||||
|
||||
stages:
|
||||
- test
|
||||
- deploy
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- php: 5.6
|
||||
env: BRANCH=1.6.1.x
|
||||
- php: 7.0
|
||||
env: BRANCH=1.6.1.x
|
||||
- php: 7.1
|
||||
env: BRANCH=1.6.1.x
|
||||
- php: 5.6
|
||||
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||
- php: 7.0
|
||||
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||
- php: 7.1
|
||||
env: BRANCH=1.6.1.18 COMPOSER_IN_TESTS=1
|
||||
|
||||
before_script:
|
||||
- bash tests/bin/clone_prestashop.sh
|
||||
- bash tests/bin/setup-apache.sh
|
||||
- bash tests/bin/before_script.sh
|
||||
- php: 5.6
|
||||
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||
- php: 7.0
|
||||
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||
- php: 7.1
|
||||
env: BRANCH=1.6.1.19 COMPOSER_IN_TESTS=1
|
||||
|
||||
script:
|
||||
- bash tests/bin/script.sh
|
||||
- php: 5.6
|
||||
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:
|
||||
# skip_cleanup: true
|
||||
# provider: script
|
||||
# script: make
|
||||
# on:
|
||||
# php: 7.2
|
||||
# branch: master
|
||||
# condition: "$DEPLOY = true"
|
||||
- php: 5.6
|
||||
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||
- php: 7.0
|
||||
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||
- php: 7.1
|
||||
env: BRANCH=1.6.1.21 COMPOSER_IN_TESTS=1
|
||||
|
||||
- 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
|
||||
VERSION = `cat $(FILE)`
|
||||
ARCHIVE_NAME = '/tmp/retailcrm-'$(VERSION)'.zip'
|
||||
|
||||
all: build_archive send_to_ftp delete_archive
|
||||
.PHONY: build_archive delete_archive
|
||||
|
||||
build_archive:
|
||||
zip -r $(ARCHIVE_NAME) ./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:
|
||||
rm -f $(ARCHIVE_NAME)
|
||||
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"?>
|
||||
<phpunit
|
||||
bootstrap="tests/phpunit/bootstrap.php"
|
||||
bootstrap="tests/bootstrap.php"
|
||||
backupGlobals="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
@ -12,16 +12,16 @@
|
||||
syntaxCheck="true"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="Retailcrm PrestaShop Test Suite">
|
||||
<directory>tests/phpunit</directory>
|
||||
<testsuite name="PrestaShop retailCRM Test Suite">
|
||||
<directory suffix="Test.php">tests</directory>
|
||||
<exclude>tests/helpers</exclude>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist addUncoveredFilesFromWhitelist="true">
|
||||
<whitelist>
|
||||
<directory suffix=".php">retailcrm</directory>
|
||||
<exclude>
|
||||
<directory suffix=".php">retailcrm/translations</directory>
|
||||
<directory suffix=".php">retailcrm/job</directory>
|
||||
<file>bootstrap.php</file>
|
||||
<file>index.php</file>
|
||||
<file>logo.gif</file>
|
||||
@ -30,4 +30,7 @@
|
||||
</exclude>
|
||||
</whitelist>
|
||||
</filter>
|
||||
<logging>
|
||||
<log type="coverage-clover" target="coverage.xml"/>
|
||||
</logging>
|
||||
</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
|
||||
|
||||
if (class_exists('LegacyTests\Unit\ContextMocker')) {
|
||||
class_alias('LegacyTests\Unit\ContextMocker', 'Tests\Unit\ContextMocker');
|
||||
}
|
||||
|
||||
abstract class RetailcrmTestCase extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected $contextMock;
|
||||
@ -9,7 +13,7 @@ abstract class RetailcrmTestCase extends \PHPUnit\Framework\TestCase
|
||||
parent::setUp();
|
||||
|
||||
if (version_compare(_PS_VERSION_, '1.7', '>')) {
|
||||
$contextMocker = new \LegacyTests\Unit\ContextMocker();
|
||||
$contextMocker = new \Tests\Unit\ContextMocker();
|
||||
$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