laudis-technologies/neo4j-php-client

View on GitHub
.github/workflows/integration-test-cluster-neo4j-5.yml

Summary

Maintainability
Test Coverage
name: Integration Tests

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      CONNECTION: neo4j://neo4j:testtest@localhost:7687
    name: "Running on PHP 8.0 with a Neo4j 5.10-enterprise cluster"

    steps:
      - uses: actions/checkout@v2
      - name: Cache Composer dependencies
        uses: actions/cache@v2
        with:
          path: /tmp/composer-cache
          key: ${{ runner.os }}-8.0-${{ hashFiles('**/composer.lock') }}
      - uses: php-actions/composer@v6
        with:
          progress: yes
          php_version: 8.0
          version: 2
      - uses: php-actions/phpunit@v3
        with:
          configuration: phpunit.xml.dist
          php_version: 8.0
          memory_limit: 1024M
          version: 9
          testsuite: Integration
          bootstrap: vendor/autoload.php

    services:
      server1:
        image: neo4j:5.10-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.10-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.10-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.10-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"