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