diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..592d72f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,59 @@ +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - '3*' + +name: create_release + +jobs: + build: + name: create_release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Slack Notification on Start + uses: rtCamp/action-slack-notify@v2.2.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-release + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: "#f0ad4e" + SLACK_MESSAGE: "Start Job" + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body: | + NetCommons ${{ github.ref }} released. + draft: false + prerelease: false + + # テスト成功時はこちらのステップが実行される + - name: Slack Notification on Finish + uses: rtCamp/action-slack-notify@v2.2.0 + if: success() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-release + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: good + SLACK_MESSAGE: "Job Success" + + # テスト失敗時はこちらのステップが実行される + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2.2.0 + if: failure() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: danger + SLACK_MESSAGE: "Job Failure" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..6da4321 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,168 @@ +on: + push: + branches: + - main + - master + pull_request: + branches: + - main + - master + +name: tests + +jobs: + setup: + name: setup + runs-on: ubuntu-latest + steps: + - name: Slack Notification on Start + uses: rtCamp/action-slack-notify@v2.2.0 + if: env.SLACK_WEBHOOK != '' + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: "#f0ad4e" + + tests: + name: tests + needs: setup + runs-on: ubuntu-latest + strategy: + matrix: + php: [ '7.1', '7.2', '7.3', '7.4' ] + mysql: [ '5.7', '8.0' ] + + env: + NC3_BUILD_DIR: "/opt/nc3" + NC3_DOCKER_DIR: "/opt/docker" + NC3_GIT_URL: "git://github.com/NetCommons3/NetCommons3.git" + NC3_GIT_BRANCH: "master" + PLUGIN_BUILD_DIR: ${{ github.workspace }} + PHP_VERSION: ${{ matrix.php }} + MYSQL_VERSION: ${{ matrix.mysql }} + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: cakephp_test + COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git://github.com/"' >> ~/.gitconfig + + - name: environment + run: | + echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" + echo "PLUGIN_BUILD_DIR=${PLUGIN_BUILD_DIR}" + echo "PHP_VERSION=${PHP_VERSION}" + echo "MYSQL_VERSION=${MYSQL_VERSION}" + ls -al ${PLUGIN_BUILD_DIR} + + - name: docker-compose install + run: | + curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + chmod +x ~/docker-compose + sudo mv ~/docker-compose /usr/local/bin/docker-compose + docker-compose --version + + - name: git clone nc3 + run: git clone -b ${NC3_GIT_BRANCH} ${NC3_GIT_URL} ${NC3_BUILD_DIR} + + - name: git clone nc3_docker + run: git clone https://github.com/NetCommons3/nc3app-docker.git ${NC3_DOCKER_DIR} + + - name: docker-compose start + run: | + cd ${NC3_DOCKER_DIR} + docker-compose up -d + docker-compose start + + - run: docker ps + + - name: check libraries + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/start-on-docker.sh + + - name: nc3 build + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/app-build.sh + + - name: phpcs (PHP CodeSniffer) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh + + - name: phpmd (PHP Mess Detector) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh + + - name: phpcpd (PHP Copy/Paste Detector) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpcpd.sh + + - name: gjslint (JavaScript Style Check) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/gjslint.sh + + - name: phpdoc (PHP Documentor) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh + + - name: phpunit (PHP UnitTest) + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpunit.sh + sudo -s chmod a+w -R ${NC3_BUILD_DIR}/build + +# - name: push coveralls +# env: +# COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# COVERALLS_FLAG_NAME: ${{ matrix.php }} +# run: | +# cd ${NC3_BUILD_DIR} +# ls -la ${NC3_BUILD_DIR} +# vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v + + - name: docker-compose remove + if: always() + run: | + cd ${NC3_DOCKER_DIR} + docker-compose rm -f + + # テスト失敗時はこちらのステップが実行される + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2.2.0 + if: env.SLACK_WEBHOOK != '' && failure() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}(php${{ matrix.php }}, mysql${{ matrix.mysql }})" + SLACK_COLOR: danger + + teardown: + name: teardown + runs-on: ubuntu-latest + needs: tests + steps: + # テスト成功時はこちらのステップが実行される + - name: Slack Notification on Success + uses: rtCamp/action-slack-notify@v2.2.0 + if: env.SLACK_WEBHOOK != '' && success() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: good diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 898a57f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - -sudo: false - -env: - - NETCOMMONS_VERSION=master DB=mysql - -before_script: - - export NETCOMMONS_BUILD_DIR=`dirname $TRAVIS_BUILD_DIR`/NetCommons3 - - git clone git://github.com/NetCommons3/NetCommons3 $NETCOMMONS_BUILD_DIR - - cd $NETCOMMONS_BUILD_DIR - - git checkout $NETCOMMONS_VERSION - - travis_wait . tools/build/plugins/cakephp/travis/pre.sh - - . tools/build/plugins/cakephp/travis/environment.sh - -script: - - . tools/build/plugins/cakephp/travis/main.sh - -after_script: - - cp $TRAVIS_BUILD_DIR/phpunit.xml . - - . tools/build/plugins/cakephp/travis/post.sh - -notifications: - email: - recipients: - - netcommons3@googlegroups.com - on_success: never # default: change - on_failure: always # default: always diff --git a/Controller/TaskProgressRateController.php b/Controller/TaskProgressRateController.php index 9415800..8346c03 100644 --- a/Controller/TaskProgressRateController.php +++ b/Controller/TaskProgressRateController.php @@ -49,6 +49,11 @@ public function edit() { if ($this->request->is('post')) { $rateCondition = $this->params['named']; $key = $rateCondition['content_key']; + if (isset($rateCondition['progress_rate'])) { + $rateCondition['TaskContent']['progress_rate'] = $rateCondition['progress_rate']; + unset($rateCondition['progress_rate']); + } + // 一覧から完了ボタンの処理時にnamedから値を取得 $this->params['data'] = array_merge($this->params['data'], $rateCondition); $progressRate = $this->params['data']['TaskContent']['progress_rate']; @@ -64,7 +69,7 @@ public function edit() { ); // 元の画面を表示 - $this->redirect($this->request->referer()); + $this->redirect($this->request->referer(true)); } } } diff --git a/Model/TaskContent.php b/Model/TaskContent.php old mode 100755 new mode 100644 index 1312aa8..7f1000e --- a/Model/TaskContent.php +++ b/Model/TaskContent.php @@ -181,7 +181,7 @@ public function beforeValidate($options = array()) { $getValidate = $this->_getValidateSpecification(); } - $this->validate = Hash::merge( + $this->validate = ValidateMerge::merge( $this->validate, $getValidate ); @@ -649,7 +649,7 @@ public function saveContent($data) { $this->setSetting(MailQueueBehavior::MAIL_QUEUE_SETTING_USER_IDS, $mailSendUserIdArr); } - $savedData = $this->save($data, false); + $savedData = $this->save(null, false); if ($savedData === false) { //このsaveで失敗するならvalidate以外なので例外なげる throw new InternalErrorException(__d('net_commons', 'Internal Server Error')); diff --git a/Model/TasksAppModel.php b/Model/TasksAppModel.php old mode 100755 new mode 100644 diff --git a/README.md b/README.md index c0d3264..b218236 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,6 @@ Tasks ======= -Tasks for NetCommons3 - -[![Build Status](https://travis-ci.org/NetCommons3/Tasks.svg?branch=master)](https://travis-ci.org/NetCommons3/Tasks) -[![Coverage Status](https://img.shields.io/coveralls/NetCommons3/Tasks.svg)](https://coveralls.io/r/NetCommons3/Tasks?branch=master) - -| dependencies | status | -| ------------ | ------ | -| composer.json | [![Dependency Status](https://www.versioneye.com/user/projects/579098b9321a11000daa4867/badge.svg?style=flat)](https://www.versioneye.com/user/projects/579098b9321a11000daa4867) | - - +[![Tests Status](https://github.com/NetCommons3/Tasks/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/NetCommons3/Tasks/actions/workflows/tests.yml) +[![Coverage Status](https://coveralls.io/repos/NetCommons3/Tasks/badge.svg?branch=master)](https://coveralls.io/r/NetCommons3/Tasks?branch=master) +[![Stable Version](https://img.shields.io/packagist/v/netcommons/tasks.svg?label=stable)](https://packagist.org/packages/netcommons/tasks) diff --git a/Test/Case/AllTasksTest.php b/Test/Case/AllTasksTest.php index 34ff065..9fd8c75 100644 --- a/Test/Case/AllTasksTest.php +++ b/Test/Case/AllTasksTest.php @@ -9,6 +9,8 @@ * @copyright Copyright 2014, NetCommons Project */ +App::uses('NetCommonsTestSuite', 'NetCommons.TestSuite'); + /** * Tasks All Test Case * @@ -16,16 +18,16 @@ * @package NetCommons\Tasks\Test\Case * @codeCoverageIgnore */ -class AllTasksTest extends CakeTestSuite { +class AllTasksTest extends NetCommonsTestSuite { /** * All test suite * - * @return CakeTestSuite + * @return NetCommonsTestSuite */ public static function suite() { $plugin = preg_replace('/^All([\w]+)Test$/', '$1', __CLASS__); - $suite = new CakeTestSuite(sprintf('All %s Plugin tests', $plugin)); + $suite = new NetCommonsTestSuite(sprintf('All %s Plugin tests', $plugin)); $suite->addTestDirectoryRecursive(CakePlugin::path($plugin) . 'Test' . DS . 'Case'); return $suite; } diff --git a/Test/Case/Controller/TaskBlockRolePermissionsController/EditTest.php b/Test/Case/Controller/TaskBlockRolePermissionsController/EditTest.php index e449ccb..c39d6a1 100644 --- a/Test/Case/Controller/TaskBlockRolePermissionsController/EditTest.php +++ b/Test/Case/Controller/TaskBlockRolePermissionsController/EditTest.php @@ -73,9 +73,9 @@ private function __data() { 'TaskSetting' => array( 'id' => 2, 'task_key' => 'task_key_2', - 'use_workflow' => true, - 'use_comment_approval' => true, - 'approval_type' => true, + 'use_workflow' => '1', + 'use_comment_approval' => '1', + 'approval_type' => '1', ) ); diff --git a/Test/Case/Controller/TaskBlocksController/EditTest.php b/Test/Case/Controller/TaskBlocksController/EditTest.php index c44b146..eda7c05 100644 --- a/Test/Case/Controller/TaskBlocksController/EditTest.php +++ b/Test/Case/Controller/TaskBlocksController/EditTest.php @@ -66,7 +66,7 @@ private function __data($isEdit) { $frameId = '6'; //$frameKey = 'frame_3'; if ($isEdit) { - $blockId = '4'; + $blockId = '2'; $blockKey = 'block_2'; $taskId = '3'; $taskKey = 'task_key_2'; diff --git a/Test/Case/Controller/TaskContentsController/IndexTest.php b/Test/Case/Controller/TaskContentsController/IndexTest.php old mode 100755 new mode 100644 diff --git a/Test/Case/Controller/TaskProgressRateController/EditTest.php b/Test/Case/Controller/TaskProgressRateController/EditTest.php index fab86d9..cf03ebf 100644 --- a/Test/Case/Controller/TaskProgressRateController/EditTest.php +++ b/Test/Case/Controller/TaskProgressRateController/EditTest.php @@ -164,7 +164,7 @@ public function testEditPostNamed() { 'action' => 'edit', 'block_id' => $blockId, 'content_key' => 'task_content_key', - 'TaskContent' => array('progress_rate' => 100) + 'progress_rate' => 100 )); $params = array(); $this->testAction($url, $params); @@ -190,13 +190,14 @@ public function testEditPostValidationError() { array('action' => 'edit', 'content_key' => 'task_content_key'), 'BadRequestException', 'json'); $expected = array( - 'name' => '不正なリクエストの可能性があります。', + 'name' => 'Bad Request', 'code' => 400, 'class' => 'danger', - 'interval' => 4000, + 'interval' => 6000, //'plugin' => 'NetCommons', 'ajax' => true, 'error' => '不正なリクエストの可能性があります。', + 'message' => '不正なリクエストの可能性があります。', ); $this->assertEquals($expected, $result); diff --git a/Test/Case/Model/TaskCharge/GetSelectChargeUsersTest.php b/Test/Case/Model/TaskCharge/GetSelectChargeUsersTest.php old mode 100755 new mode 100644 diff --git a/VERSION.txt b/VERSION.txt new file mode 100644 index 0000000..86fb650 --- /dev/null +++ b/VERSION.txt @@ -0,0 +1 @@ +3.3.7 diff --git a/View/Elements/TaskContents/task_content.ctp b/View/Elements/TaskContents/task_content.ctp index 52ed29e..f000e9d 100644 --- a/View/Elements/TaskContents/task_content.ctp +++ b/View/Elements/TaskContents/task_content.ctp @@ -32,12 +32,13 @@ echo $this->NetCommonsHtml->css('/tasks/css/tasks.css'); + 'task_progress_rate', 'action' => 'edit', 'content_key' => h($content['TaskContent']['key']), - 'TaskContent' => array('progress_rate' => TasksComponent::TASK_COMPLETION_PROGRESS_RATE), + 'progress_rate' => TasksComponent::TASK_COMPLETION_PROGRESS_RATE, ); echo $this->NetCommonsForm->create( 'TaskProgressRate', array( @@ -64,7 +65,6 @@ echo $this->NetCommonsHtml->css('/tasks/css/tasks.css'); $disabled = ''; } ?> -
NetCommonsForm->input( '', array( @@ -77,8 +77,8 @@ echo $this->NetCommonsHtml->css('/tasks/css/tasks.css'); ) ); ?>
- NetCommonsForm->end(); ?> + + + + app/Plugin/Tasks @@ -14,6 +17,6 @@ - +