From 413e6cb6f6151c68e294ac58bcfbd2fd14f50d11 Mon Sep 17 00:00:00 2001
From: dyszczo <krzysztof@dyszczyk.pl>
Date: Wed, 13 Jun 2018 15:50:17 +0200
Subject: [PATCH] Common project files update

---
 .gitlab-ci.yml                 | 310 +++++++++++++++++++++++++++++++++
 .gitlab/issue_templates/Bug.md |  32 ++++
 2 files changed, 342 insertions(+)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 .gitlab/issue_templates/Bug.md

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..61595c5
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,310 @@
+variables:
+  WPDESK_CI_VERSION: 1.10.18
+  MYSQL_ROOT_PASSWORD: mysql
+  MYSQL_DATABASE: wptest
+  MYSQL_USER: mysql
+  MYSQL_PASSWORD: mysql
+  MYSQL_INNODB_LOG_BUFFER_SIZE: 32M
+  PHP_ERROR_REPORTING: E_ALL
+  COMPOSER_ALLOW_SUPERUSER: 1
+  GIT_STRATEGY: fetch
+  ACCEPTANCE_ERROR_PATH: ${CI_PROJECT_DIR}/acceptance
+
+stages:
+  - tools
+  - tests
+  - pre-deploy
+  - deploy
+
+.template: &job-test-template
+  stage: tests
+  coverage: '/^\s*Lines:\s*\d+.\d+\%/'
+
+.template: &job-test-integration-template
+  <<: *job-test-template
+  services:
+    - mysql:5.6
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - ls -l
+    - php --version
+    - cat /tmp/wordpress-develop/src/wp-includes/version.php
+    - cat /tmp/woocommerce/woocommerce.php
+    - composer update --no-progress
+    - if [[ -f tests/integration/prepare.sh ]]; then sh tests/integration/prepare.sh; fi
+    - vendor/bin/phpunit --configuration phpunit-integration.xml --coverage-text --colors=never
+  only:
+    - tags
+
+.template: &job-test-integration-template-fast
+  <<: *job-test-integration-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - ls -l
+    - php --version
+    - cat /tmp/wordpress-develop/src/wp-includes/version.php
+    - cat /tmp/woocommerce/woocommerce.php
+    - composer update --no-progress
+    - if [[ -f tests/integration/prepare.sh ]]; then sh tests/integration/prepare.sh; fi
+    - vendor/bin/phpunit --configuration phpunit-integration.xml --no-coverage
+  except:
+    - tags
+  only:
+
+.template: &job-test-unit-template
+  <<: *job-test-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - ls -l
+    - php --version
+    - cat /tmp/wordpress-develop/src/wp-includes/version.php
+    - cat /tmp/woocommerce/woocommerce.php
+    - composer update --no-progress
+    - vendor/bin/phpunit --configuration phpunit-unit.xml --coverage-text --colors=never
+  only:
+    - tags
+
+.template: &job-test-unit-template-fast
+  <<: *job-test-unit-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - ls -l
+    - php --version
+    - cat /tmp/wordpress-develop/src/wp-includes/version.php
+    - cat /tmp/woocommerce/woocommerce.php
+    - composer update --no-progress
+    - vendor/bin/phpunit --configuration phpunit-unit.xml --no-coverage
+  except:
+    - tags
+  only:
+
+.template: &job-deploy-template
+  image: wpdesknet/amazon-svn-deploy
+  stage: deploy
+  dependencies:
+    - build to deploy
+    - unit test lastest coverage
+    - integration test lastest coverage
+  retry: 2
+  when: manual
+  only:
+    - tags
+
+before_script:
+  - cd ${CI_PROJECT_DIR}
+
+phpmetric metrics:
+  stage: tools
+  image: wpdesknet/phpunit-woocommerce:0-0
+  allow_failure: true
+  when: manual
+  artifacts:
+    when: always
+    expire_in: 1 month
+    name: "metrics"
+    paths:
+      - ${CI_PROJECT_DIR}/phpmetric
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - composer require phpmetrics/phpmetrics
+    - composer update --no-progress
+    - php ./vendor/bin/phpmetrics --report-html=phpmetric .
+
+churn metrics:
+  stage: tools
+  image: wpdesknet/phpunit-woocommerce:0-0
+  allow_failure: true
+  when: manual
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - composer require bmitch/churn-php
+    - composer update --no-progress
+    - vendor/bin/churn run classes inc
+
+code style test:
+  stage: tests
+  image: wpdesknet/phpunit-woocommerce:0-0
+  allow_failure: true
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - composer update --no-progress
+    - vendor/bin/phpcs
+
+unit test lastest:
+  <<: *job-test-unit-template-fast
+  image: wpdesknet/phpunit-woocommerce:0-0
+
+integration test lastest:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:0-0
+
+unit test lastest coverage:
+  <<: *job-test-unit-template
+  image: wpdesknet/phpunit-woocommerce:0-0
+
+integration test lastest coverage:
+  <<: *job-test-integration-template
+  image: wpdesknet/phpunit-woocommerce:0-0
+
+integration test php7-1 wc-1:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:1-1
+
+integration test php7 wc-2:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:2-2
+
+integration test php-7 wc-3:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:2-3
+
+integration test php5-6:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:3-0
+
+integration test php5-5:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:4-0
+
+integration test current woocommerce:
+  <<: *job-test-integration-template-fast
+  image: wpdesknet/phpunit-woocommerce:0-0
+  allow_failure: true
+  before_script:
+    - cd /tmp
+    - rm -rf woocommerce
+    - git clone https://github.com/woocommerce/woocommerce.git
+    - cd ${CI_PROJECT_DIR}
+
+acceptance test:
+  image: wpdesknet/node
+  variables:
+    CI_DEBUG_SERVICES: trace
+  services:
+    - name: mysql:5.6
+      alias: mysqltests
+    - name: wpdesknet/apache-woocommerce:latest
+      alias: wootests
+    - name: selenium/standalone-chrome
+      alias: selenium
+  artifacts:
+    when: always
+    expire_in: 1 day
+    name: "error logs"
+    paths:
+      - ${CI_PROJECT_DIR}/acceptance
+  stage: tests
+  allow_failure: true
+  script:
+    - cd ${CI_PROJECT_DIR}
+    - composer update --no-progress --no-dev
+    - if [[ -f ${CI_PROJECT_DIR}/tests/acceptance/prepare.sh ]]; then sh ${CI_PROJECT_DIR}/tests/acceptance/prepare.sh; fi
+
+    - export MYSQL_IP=$(awk '/^[[:space:]]*($|#)/{next} /mysqltests/{print $1; exit}' /etc/hosts)
+    - export WOOTESTS_IP=$(awk '/^[[:space:]]*($|#)/{next} /wootests/{print $1; exit}' /etc/hosts)
+    - echo "http://wootests/wpdesk_init.php?mysql_ip=${MYSQL_IP}&wootests_ip=${WOOTESTS_IP}"
+    - wget -O /tmp/wpdesk_init.txt "http://wootests/wpdesk_init.php?mysql_ip=${MYSQL_IP}&wootests_ip=${WOOTESTS_IP}"
+    - tail -50 /tmp/wpdesk_init.txt
+
+    - sh /tmp/clone.sh git@gitlab.com:wpdesk/plugins-tests.git /tmp/tests headless
+    - cd /tmp/tests
+    - npm install
+    - npm install -g grunt-cli
+    - cd node_modules/.bin
+    - ./webdriver-manager update
+    - cd ../
+    - mkdir -p ${CI_PROJECT_DIR}/acceptance/reports/html/screenshot
+    - grunt chrome-${CI_PROJECT_NAME}
+
+
+apigen docs:
+  image:
+    name: wpdesknet/apigen
+  stage: pre-deploy
+  artifacts:
+    expire_in: 1 day
+    name: "docs"
+    paths:
+      - docs/
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - ls -l
+    - /app/vendor/bin/apigen generate
+    - php /app/hooks-docs.php ${CI_PROJECT_DIR}
+  only:
+    - tags
+
+pages:
+  stage: deploy
+  dependencies:
+    - apigen docs
+  script:
+    - rm -rf public
+    - mv docs/ public/
+    - 'curl -X POST --data-urlencode "payload={\"text\": \"Dokumentacja projektu ${CI_PROJECT_NAME} w wersji ${CI_COMMIT_REF_NAME} umieszczona w <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}/pages|pages> \", }" https://hooks.slack.com/services/${SLACK_AUTH}'
+  artifacts:
+    expire_in: 1 day
+    paths:
+      - public
+  only:
+    - tags
+
+build to deploy:
+  image: wpdesknet/phpunit-woocommerce:4-0
+  stage: pre-deploy
+  artifacts:
+    expire_in: 1 month
+    name: "production release"
+    paths:
+      - release
+      - release.zip
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - php --version
+    - ls -l
+    - /tmp/set_version.sh ${CI_COMMIT_REF_NAME}
+    - rm -rf ${CI_PROJECT_DIR}/release ${CI_PROJECT_DIR}/release.zip /tmp/release
+    - mkdir /tmp/release
+    - mkdir -p ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
+    - cp -rf ${CI_PROJECT_DIR}/* /tmp/release
+    - cp -rf /tmp/release/* ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
+    - cd ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
+    - composer install --no-dev --no-progress --optimize-autoloader
+    - rm -rf build-coverage release tests docs .git .editorconfig .gitignore .gitlab-ci.yml apigen.neon
+    - rm -rf composer.json composer.lock phpcs.xml.dist phpunit-integration.xml phpunit-unit.xml composer.phar wp-cli.phar
+    - cd ../
+    - zip -r -q ../release.zip ./
+  only:
+    - tags
+
+deploy to shop:
+  <<: *job-deploy-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - /tmp/deploy_shop.sh ${CI_PROJECT_NAME} release.zip ${CI_PROJECT_NAME}.zip
+    - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do sklepu w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
+  environment:
+    name: wpdesk shop
+    url: https://wpdeskplugin.s3.amazonaws.com/${CI_PROJECT_NAME}.zip
+
+deploy to demo:
+  <<: *job-deploy-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - /tmp/deploy_demo.sh release/${CI_PROJECT_NAME} ${CI_PROJECT_NAME}
+    - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do demo w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
+  environment:
+    name: wpdesk demo
+    url: https://demo.wpdesk.org
+
+deploy to repository:
+  <<: *job-deploy-template
+  script:
+    - echo ${WPDESK_CI_VERSION}
+    - rm -rf /tmp/svn-repository
+    - mkdir /tmp/svn-repository
+    - /tmp/deploy_repository.sh ${CI_PROJECT_NAME} ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME} /tmp/svn-repository
+    - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do repozytorium WP w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
+  environment:
+    name: wordpress repository
+    url: https://downloads.wordpress.org/plugin/${CI_PROJECT_NAME}.${CI_COMMIT_REF_NAME}.zip
diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md
new file mode 100644
index 0000000..fb98b9e
--- /dev/null
+++ b/.gitlab/issue_templates/Bug.md
@@ -0,0 +1,32 @@
+### Select WooCommerce version e.g: [x] 2.6
+<!--- Select the WooCommerce version on which the error occurred -->
+
+- [ ] [2.6](http://woo26.tests.wpdesk.org)
+- [ ] [2.7](http://woo27.tests.wpdesk.org)
+- [ ] [3.0](http://woo30.tests.wpdesk.org)
+- [ ] [3.1](http://woo31.tests.wpdesk.org)
+- [ ] [3.2](http://woo32.tests.wpdesk.org)
+- [ ] [3.3](http://woo33.tests.wpdesk.org)
+- [ ] [3.4](http://woo34.tests.wpdesk.org)
+- [ ] [Stable](https://stable.wpdesk.org/) 
+
+### Select PHP version e.g: [x] 5.6
+<!--- Select the PHP version on which the error occurred -->
+
+- [ ] 5.3 
+- [ ] 5.5
+- [ ] 5.6
+- [ ] 7.1
+- [ ] 7.2
+
+## Steps to Reproduce
+<!--- Provide a link to a live example, or an unambiguous set of steps to -->
+
+1. 
+2. 
+
+
+## Expected Behavior
+<!--- Tell what should happen -->
+
+1. 
\ No newline at end of file
-- 
GitLab