From 35c6f956a2ac98bec22713462f0518df0193bbb2 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Sun, 28 Jul 2024 17:31:32 +0530 Subject: [PATCH 01/14] Use cache in tests in Github actions https://github.com/php-openapi/yii2-openapi/issues/17 --- .github/workflows/test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 146e6518..a650e5d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,6 +42,17 @@ jobs: - name: docker-compose up run: make up + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install Docker and composer dependencies run: docker-compose exec php php -v && make installdocker From ed532b08f3caefbc59ea7b088d60356beaa96a67 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 14:02:30 +0530 Subject: [PATCH 02/14] Attempt 2 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a650e5d4..c0a4bd4f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + key: ${{ runner.os }}-composer-${{ hashFiles('composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install Docker and composer dependencies From d0b6c7a020c8a04972b55d57a8fc5f80c03cd48d Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 14:08:32 +0530 Subject: [PATCH 03/14] Check if cache is used --- src/lib/generators/JsonActionGenerator.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/generators/JsonActionGenerator.php b/src/lib/generators/JsonActionGenerator.php index 696f7974..39932ffd 100644 --- a/src/lib/generators/JsonActionGenerator.php +++ b/src/lib/generators/JsonActionGenerator.php @@ -61,6 +61,7 @@ protected function prepareAction(string $method, Operation $operation, RouteData $transformerClass = $modelClass !== null ? $this->config->transformerNamespace . '\\' . Inflector::id2camel($modelClass, '_') . 'Transformer' : null; + } if ($routeData->type === RouteData::TYPE_RESOURCE_OPERATION && !$modelClass) { From 0abc782dbcddb2e499b5af8a3255c7adb95df64b Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 14:27:01 +0530 Subject: [PATCH 04/14] Undo change --- src/lib/generators/JsonActionGenerator.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/generators/JsonActionGenerator.php b/src/lib/generators/JsonActionGenerator.php index 39932ffd..696f7974 100644 --- a/src/lib/generators/JsonActionGenerator.php +++ b/src/lib/generators/JsonActionGenerator.php @@ -61,7 +61,6 @@ protected function prepareAction(string $method, Operation $operation, RouteData $transformerClass = $modelClass !== null ? $this->config->transformerNamespace . '\\' . Inflector::id2camel($modelClass, '_') . 'Transformer' : null; - } if ($routeData->type === RouteData::TYPE_RESOURCE_OPERATION && !$modelClass) { From bb61c04d0dc701512abe9b4be11d8ee185967031 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 15:27:19 +0530 Subject: [PATCH 05/14] Check if cache is created and stored --- Makefile | 7 ++++++- src/lib/generators/JsonActionGenerator.php | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 6d1a22dc..1585a37c 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,8 @@ +# set user to "root" to run commands as root in Docker +#USER=$$(whoami) +# The docker command to execute commands directly in Docker +#DOCKER=docker-compose exec -T --user="$(USER)" php + PHPARGS=-dmemory_limit=64M #PHPARGS=-dmemory_limit=64M -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 #PHPARGS=-dmemory_limit=64M -dxdebug.remote_enable=1 @@ -44,7 +49,7 @@ up: docker-compose exec -T mysql timeout 60s sh -c "while ! (mysql --execute \"ALTER USER 'dbuser'@'%' IDENTIFIED WITH mysql_native_password BY 'dbpass';\" > /dev/null 2>&1); do echo -n '.'; sleep 0.1 ; done; echo 'ok'" || (docker-compose ps; docker-compose logs; exit 1) cli: - docker-compose exec --user=$(UID) php bash + docker-compose exec --user="root" php bash # --user=$(UID) cli_mysql: docker-compose exec --user=$(UID) mysql bash diff --git a/src/lib/generators/JsonActionGenerator.php b/src/lib/generators/JsonActionGenerator.php index 696f7974..6434cb53 100644 --- a/src/lib/generators/JsonActionGenerator.php +++ b/src/lib/generators/JsonActionGenerator.php @@ -27,7 +27,7 @@ class JsonActionGenerator extends RestActionGenerator * @throws \cebe\openapi\exceptions\UnresolvableReferenceException */ protected function prepareAction(string $method, Operation $operation, RouteData $routeData):BaseObject - { + { # $actionType = $this->resolveActionType($routeData, $method); $modelClass = ResponseSchema::guessModelClass($operation, $actionType); $expectedRelations = in_array($actionType, ['list', 'view']) From 9ee0d319746581306cf4aa24d77c60219eef2af2 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 15:46:01 +0530 Subject: [PATCH 06/14] Cache dir --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c0a4bd4f..86b87157 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,8 @@ jobs: - name: Get composer cache directory id: composer-cache - run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT +# run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=./tests/tmp/.composer/cache/files" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@v4 From 8a41c8a3b983bda987d1bd0765cc307f2c892cd6 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 15:48:43 +0530 Subject: [PATCH 07/14] Fix user in `make installdocker` --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1585a37c..6313a46c 100644 --- a/Makefile +++ b/Makefile @@ -60,7 +60,7 @@ migrate: docker-compose run --user=$(UID) --rm php sh -c 'cd /app/tests && ./yii migrate --interactive=0' installdocker: - docker-compose run --user=$(UID) --rm php composer install && chmod +x tests/yii + docker-compose run --user="root" --rm php composer install && chmod +x tests/yii testdocker: docker-compose run --user=$(UID) --rm php sh -c 'vendor/bin/phpunit --repeat 3' From 4a24aa7277362069afffbfb96b7105363b72574b Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 15:53:38 +0530 Subject: [PATCH 08/14] Check if cache is used --- src/lib/generators/JsonActionGenerator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/generators/JsonActionGenerator.php b/src/lib/generators/JsonActionGenerator.php index 6434cb53..696f7974 100644 --- a/src/lib/generators/JsonActionGenerator.php +++ b/src/lib/generators/JsonActionGenerator.php @@ -27,7 +27,7 @@ class JsonActionGenerator extends RestActionGenerator * @throws \cebe\openapi\exceptions\UnresolvableReferenceException */ protected function prepareAction(string $method, Operation $operation, RouteData $routeData):BaseObject - { # + { $actionType = $this->resolveActionType($routeData, $method); $modelClass = ResponseSchema::guessModelClass($operation, $actionType); $expectedRelations = in_array($actionType, ['list', 'view']) From 48d5010fc082b904e5549c12f9345e8940d06ee3 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Mon, 29 Jul 2024 19:06:25 +0530 Subject: [PATCH 09/14] Fix mariadb client in new version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9b71bf9e..08d61292 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,7 @@ services: ports: - '23306:3306' volumes: - - ./tests/tmp/maria:/var/lib/mysql:rw + - ./tests/tmp/mariadb:/var/lib/mariadb:rw environment: # TZ: UTC # MARIADB_ALLOW_EMPTY_PASSWORD: 1 From 6cc272e999ca1c11496f5940db3839b69beab996 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 31 Jul 2024 19:11:31 +0530 Subject: [PATCH 10/14] Make directory writable to restore cache --- .github/workflows/test.yml | 3 +++ CONTRIBUTING.md | 2 +- Makefile | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 86b87157..f479cd02 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,6 +47,9 @@ jobs: # run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT run: echo "dir=./tests/tmp/.composer/cache/files" >> $GITHUB_OUTPUT + - name: Make tests dir writable for restoring cache in next step + run: make tests_dir_write_permission + - name: Cache dependencies uses: actions/cache@v4 with: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e1a62b7d..a5e4abe8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ cd yii2-openapi make clean_all make up make installdocker -sudo chmod -R 777 tests/tmp/ # https://github.com/cebe/yii2-openapi/issues/156 +sudo chmod -R 777 tests/tmp/ # TODO avoid 777 https://github.com/cebe/yii2-openapi/issues/156 make migrate # to check everything is setup up correctly ensure all tests passes diff --git a/Makefile b/Makefile index 6313a46c..070364da 100644 --- a/Makefile +++ b/Makefile @@ -62,6 +62,9 @@ migrate: installdocker: docker-compose run --user="root" --rm php composer install && chmod +x tests/yii +tests_dir_write_permission: + docker compose run --user="root" --rm php chmod -R 777 tests/tmp/ # TODO avoid 777 + testdocker: docker-compose run --user=$(UID) --rm php sh -c 'vendor/bin/phpunit --repeat 3' From e6b177676e1f0e6609a3d9cacada40768a0ab0e8 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 31 Jul 2024 19:17:36 +0530 Subject: [PATCH 11/14] Minor changes --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 070364da..661cde4a 100644 --- a/Makefile +++ b/Makefile @@ -63,7 +63,7 @@ installdocker: docker-compose run --user="root" --rm php composer install && chmod +x tests/yii tests_dir_write_permission: - docker compose run --user="root" --rm php chmod -R 777 tests/tmp/ # TODO avoid 777 + docker-compose run --user="root" --rm php chmod -R 777 tests/tmp/ # TODO avoid 777 https://github.com/cebe/yii2-openapi/issues/156 testdocker: docker-compose run --user=$(UID) --rm php sh -c 'vendor/bin/phpunit --repeat 3' From 9c690a6b9e0a60c1de7a69a0cd437d502c781767 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 31 Jul 2024 19:21:21 +0530 Subject: [PATCH 12/14] Enhance --- .github/workflows/test.yml | 2 +- Makefile | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f479cd02..61a529fe 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,9 +42,9 @@ jobs: - name: docker-compose up run: make up + # https://github.com/shivammathur/setup-php?tab=readme-ov-file#cache-composer-dependencies - name: Get composer cache directory id: composer-cache -# run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT run: echo "dir=./tests/tmp/.composer/cache/files" >> $GITHUB_OUTPUT - name: Make tests dir writable for restoring cache in next step diff --git a/Makefile b/Makefile index 661cde4a..ccdb082c 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,3 @@ -# set user to "root" to run commands as root in Docker -#USER=$$(whoami) -# The docker command to execute commands directly in Docker -#DOCKER=docker-compose exec -T --user="$(USER)" php - PHPARGS=-dmemory_limit=64M #PHPARGS=-dmemory_limit=64M -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 #PHPARGS=-dmemory_limit=64M -dxdebug.remote_enable=1 @@ -60,7 +55,7 @@ migrate: docker-compose run --user=$(UID) --rm php sh -c 'cd /app/tests && ./yii migrate --interactive=0' installdocker: - docker-compose run --user="root" --rm php composer install && chmod +x tests/yii + docker-compose run --user=$(UID) --rm php composer install && chmod +x tests/yii tests_dir_write_permission: docker-compose run --user="root" --rm php chmod -R 777 tests/tmp/ # TODO avoid 777 https://github.com/cebe/yii2-openapi/issues/156 From 3950865960d6d1804d3eba2f54d740adab5036dc Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 31 Jul 2024 19:22:25 +0530 Subject: [PATCH 13/14] Revert a change --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ccdb082c..d35506d7 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ up: docker-compose exec -T mysql timeout 60s sh -c "while ! (mysql --execute \"ALTER USER 'dbuser'@'%' IDENTIFIED WITH mysql_native_password BY 'dbpass';\" > /dev/null 2>&1); do echo -n '.'; sleep 0.1 ; done; echo 'ok'" || (docker-compose ps; docker-compose logs; exit 1) cli: - docker-compose exec --user="root" php bash # --user=$(UID) + docker-compose exec --user=$(UID) php bash cli_mysql: docker-compose exec --user=$(UID) mysql bash From 4b8c742300c95ad81251929c28d385dc51285cff Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 31 Jul 2024 19:35:27 +0530 Subject: [PATCH 14/14] Resolve this TODO --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 61a529fe..8487efc3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,6 @@ jobs: matrix: php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3'] - # TODO use cache steps: - uses: actions/checkout@v3