Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into feat/logger
Browse files Browse the repository at this point in the history
  • Loading branch information
exaby73 committed Oct 9, 2024
2 parents 24cd697 + 772ee90 commit 9f94639
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 269 deletions.
132 changes: 10 additions & 122 deletions .github/workflows/integration-test-cluster-neo4j-4.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,126 +17,14 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Cache Composer dependencies
uses: actions/cache@v2
- name: Populate .env
run: |
echo "CONNECTION=neo4j://neo4j:testtest@neo4j" > .env
- uses: hoverkraft-tech/[email protected]
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-8.0-${{ hashFiles('**/composer.lock') }}
- uses: php-actions/composer@v6
with:
progress: yes
php_version: 8.1
version: 2
- uses: php-actions/phpunit@v3
with:
configuration: phpunit.xml.dist
php_version: 8.1
memory_limit: 1024M
version: 10
testsuite: Integration
bootstrap: vendor/autoload.php

services:
core1:
image: neo4j:4.4-enterprise
options: >-
--health-cmd "wget -q --method=HEAD http://localhost:7475 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
ports:
- 7688:7688
- 7475:7475
env:
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4JLABS_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
NEO4J_dbms_mode: CORE
NEO4J_causal__clustering_discovery__advertised__address: core1:5000
NEO4J_causal__clustering_transaction__advertised__address: core1:6000
NEO4J_causal__clustering_raft__advertised__address: core1:7000
NEO4J_causal__clustering_initial__discovery__members: core1:5000,core2:5000,core3:5000
NEO4J_causal__clustering_discovery__listen__address: 0.0.0.0:5000
NEO4J_causal__clustering_transaction__listen__address: 0.0.0.0:6000
NEO4J_causal__clustering_raft__listen__address: 0.0.0.0:7000
NEO4J_dbms_connector_http_listen__address: 0.0.0.0:7475
NEO4J_dbms_connector_bolt_listen__address: 0.0.0.0:7688

core2:
image: neo4j:4.4-enterprise
options: >-
--health-cmd "wget -q --method=HEAD http://localhost:7476 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
ports:
- 7689:7689
- 7476:7476
env:
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4JLABS_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
NEO4J_dbms_mode: CORE
NEO4J_causal__clustering_discovery__advertised__address: core2:5000
NEO4J_causal__clustering_transaction__advertised__address: core2:6000
NEO4J_causal__clustering_raft__advertised__address: core2:7000
NEO4J_causal__clustering_initial__discovery__members: core1:5000,core2:5000,core3:5000
NEO4J_causal__clustering_discovery__listen__address: 0.0.0.0:5000
NEO4J_causal__clustering_transaction__listen__address: 0.0.0.0:6000
NEO4J_causal__clustering_raft__listen__address: 0.0.0.0:7000
NEO4J_dbms_connector_http_listen__address: 0.0.0.0:7476
NEO4J_dbms_connector_bolt_listen__address: 0.0.0.0:7689

core3:
image: neo4j:4.4-enterprise
options: >-
--health-cmd "wget -q --method=HEAD http://localhost:7477 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
ports:
- 7690:7690
- 7477:7477
env:
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4JLABS_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
NEO4J_dbms_mode: CORE
NEO4J_causal__clustering_discovery__advertised__address: core3:5000
NEO4J_causal__clustering_transaction__advertised__address: core3:6000
NEO4J_causal__clustering_raft__advertised__address: core3:7000
NEO4J_causal__clustering_initial__discovery__members: core1:5000,core2:5000,core3:5000
NEO4J_causal__clustering_discovery__listen__address: 0.0.0.0:5000
NEO4J_causal__clustering_transaction__listen__address: 0.0.0.0:6000
NEO4J_causal__clustering_raft__listen__address: 0.0.0.0:7000
NEO4J_dbms_connector_http_listen__address: 0.0.0.0:7477
NEO4J_dbms_connector_bolt_listen__address: 0.0.0.0:7690

readreplica1:
image: neo4j:4.4-enterprise
options: >-
--health-cmd "wget -q --method=HEAD http://localhost:7478 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
ports:
- 7691:7691
- 7478:7478
env:
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4JLABS_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
NEO4J_dbms_mode: READ_REPLICA
NEO4J_causal__clustering_discovery__advertised__address: readreplica1:5000
NEO4J_causal__clustering_transaction__advertised__address: readreplica1:6000
NEO4J_causal__clustering_raft__advertised__address: readreplica1:7000
NEO4J_causal__clustering_initial__discovery__members: core1:5000,core2:5000,core3:5000
NEO4J_causal__clustering_discovery__listen__address: 0.0.0.0:5000
NEO4J_causal__clustering_transaction__listen__address: 0.0.0.0:6000
NEO4J_causal__clustering_raft__listen__address: 0.0.0.0:7000
NEO4J_dbms_connector_http_listen__address: 0.0.0.0:7478
NEO4J_dbms_connector_bolt_listen__address: 0.0.0.0:7691
compose-file: './docker-compose-neo4j-4.yml'
up-flags: '--build'
- name: Test
run: |
docker compose run client composer install
docker compose run client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
113 changes: 10 additions & 103 deletions .github/workflows/integration-test-cluster-neo4j-5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,107 +17,14 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Cache Composer dependencies
uses: actions/cache@v2
- name: Populate .env
run: |
echo "CONNECTION=neo4j://neo4j:testtest@neo4j" > .env
- uses: hoverkraft-tech/[email protected]
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-8.0-${{ hashFiles('**/composer.lock') }}
- uses: php-actions/composer@v6
with:
progress: yes
php_version: 8.1
version: 2
- uses: php-actions/phpunit@v3
with:
configuration: phpunit.xml.dist
php_version: 8.1
memory_limit: 1024M
version: 10
testsuite: Integration
bootstrap: vendor/autoload.php

services:
server1:
image: neo4j:5.20-enterprise
ports:
- 7687:7687
- 7473:7473
- 7474:7474
env:
NEO4J_initial_server_mode__constraint: PRIMARY
NEO4J_dbms_cluster_discovery_endpoints: server1:5000,server2:5000,server3:5000
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4j_server_bolt_advertised_address: localhost:7687
NEO4j_server_http_advertised_address: localhost:7474
NEO4J_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
options: >-
--hostname server1
--health-cmd "wget -q --method=HEAD http://localhost:7474 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
server2:
image: neo4j:5.20-enterprise
ports:
- 8687:7687
- 8473:7473
- 8474:7474
env:
NEO4J_initial_server_mode__constraint: PRIMARY
NEO4J_dbms_cluster_discovery_endpoints: server1:5000,server2:5000,server3:5000
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4j_server_bolt_advertised_address: localhost:8687
NEO4j_server_http_advertised_address: localhost:8474
NEO4J_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
options: >-
--hostname server2
--health-cmd "wget -q --method=HEAD http://localhost:7474 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
server3:
image: neo4j:5.20-enterprise
ports:
- 9474:7474
- 9473:7473
- 9687:7687
env:
NEO4J_initial_server_mode__constraint: PRIMARY
NEO4J_dbms_cluster_discovery_endpoints: server1:5000,server2:5000,server3:5000
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4j_server_bolt_advertised_address: localhost:9687
NEO4j_server_http_advertised_address: localhost:9474
NEO4J_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
options: >-
--hostname server3
--health-cmd "wget -q --method=HEAD http://localhost:7474 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
read-server4:
image: neo4j:5.20-enterprise
ports:
- 10474:7474
- 10473:7473
- 10687:7687
env:
NEO4J_initial_server_mode__constraint: SECONDARY
NEO4J_dbms_cluster_discovery_endpoints: server1:5000,server2:5000,server3:5000
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4j_server_bolt_advertised_address: localhost:10687
NEO4j_server_http_advertised_address: localhost:10474
NEO4J_PLUGINS: '["apoc"]'
NEO4J_AUTH: neo4j/testtest
options: >-
--hostname read-server4
--health-cmd "wget -q --method=HEAD http://localhost:7474 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
compose-file: './docker-compose.yml'
up-flags: '--build'
- name: Test
run: |
docker compose run client composer install
docker compose run client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
76 changes: 44 additions & 32 deletions .github/workflows/integration-test-single-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,53 @@ on:
- main

jobs:
tests:
tests-v4:
runs-on: ubuntu-latest
name: "Running on PHP 8.2 with a Neo4j 5 instance connecting over all available protocols"

services:
neo4j:
image: neo4j:5
env:
NEO4J_AUTH: neo4j/testtest
NEO4JLABS_PLUGINS: '["apoc"]'
ports:
- 7687:7687
- 7474:7474
options: >-
--health-cmd "wget -q --method=HEAD http://localhost:7474 || exit 1"
--health-start-period "60s"
--health-interval "30s"
--health-timeout "15s"
--health-retries "5"
name: "Running on PHP 8.1 with a Neo4j 4 instance connecting over all available protocols"

steps:
- uses: actions/checkout@v2
- name: Cache Composer dependencies
uses: actions/cache@v2
- name: Populate .env
run: |
echo "CONNECTION=neo4j://neo4j:testtest@neo4j" > .env
- uses: hoverkraft-tech/[email protected]
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
- uses: php-actions/composer@v6
compose-file: './docker-compose-neo4j-4.yml'
up-flags: '--build'
- name: Composer install
run: |
docker compose run client composer install
- name: Test neo4j://
run: |
docker compose run -e CONNECTION=neo4j://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
- name: Test bolt://
run: |
docker compose run -e CONNECTION=bolt://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
- name: Test http://
run: |
docker compose run -e CONNECTION=http://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
tests-v5:
runs-on: ubuntu-latest
name: "Running on PHP 8.1 with a Neo4j 5 instance connecting over all available protocols"

steps:
- uses: actions/checkout@v2
- name: Populate .env
run: |
echo "CONNECTION=neo4j://neo4j:testtest@neo4j" > .env
- uses: hoverkraft-tech/[email protected]
with:
progress: yes
php_version: 8.2
version: 2
- name: Test multiple connections
run: |
CONNECTION=neo4j://neo4j:testtest@localhost ./vendor/bin/phpunit --configuration=phpunit.xml.dist --testsuite=Integration & \
CONNECTION=bolt://neo4j:testtest@localhost ./vendor/bin/phpunit --configuration=phpunit.xml.dist --testsuite=Integration & \
CONNECTION=http://neo4j:testtest@localhost ./vendor/bin/phpunit --configuration=phpunit.xml.dist --testsuite=Integration & \
wait
compose-file: './docker-compose.yml'
up-flags: '--build'
- name: Composer install
run: |
docker compose run client composer install
- name: Test neo4j://
run: |
docker compose run -e CONNECTION=neo4j://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
- name: Test bolt://
run: |
docker compose run -e CONNECTION=bolt://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
- name: Test http://
run: |
docker compose run -e CONNECTION=http://neo4j:testtest@neo4j client ./vendor/bin/phpunit -c phpunit.xml.dist --testsuite Integration
10 changes: 4 additions & 6 deletions docker-compose-neo4j-4.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
version: '3.8'

x-shared:
&common
NEO4J_AUTH: neo4j/testtest
NEO4J_ACCEPT_LICENSE_AGREEMENT: "yes"
NEO4J_dbms_security_allow__csv__import__from__file__urls: "true"
NEO4JLABS_PLUGINS: '["apoc"]'

x-shared-cluster:
&common-cluster
Expand All @@ -31,16 +30,15 @@ services:
build:
context: .
dockerfile: Dockerfile
image: arestravel/php-8.0
working_dir: /opt/project
networks:
- neo4j
volumes:
- .:/opt/project
expose:
- 9000
env_file:
- .env
depends_on:
neo4j:
condition: service_healthy
testkit-backend:
build:
context: .
Expand Down
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ x-definitions:
build:
context: .
dockerfile: Dockerfile
# image: neo4j-php-client:latest
volumes:
- .:/opt/project
x-common-cluster:
Expand All @@ -48,6 +47,9 @@ services:
- .:/opt/project
env_file:
- .env
depends_on:
neo4j:
condition: service_healthy
neo4j:
<<: *common
image: neo4j:5.20-community
Expand Down
2 changes: 1 addition & 1 deletion src/Http/HttpHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ final class HttpHelper
*/
public static function interpretResponse(ResponseInterface $response): stdClass
{
if ($response->getStatusCode() >= 400) {
if ($response->getStatusCode() >= 500) {
throw new RuntimeException('HTTP Error: '.$response->getReasonPhrase());
}

Expand Down
Loading

0 comments on commit 9f94639

Please sign in to comment.