diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index cd4f52362b..cd3f5169d1 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -17,10 +17,12 @@ jobs: tools: 'composer-normalize:2.11.0, php-cs-fixer:2.16.7' - name: 'Check PHP code' - run: 'php-cs-fixer fix --diff --dry-run --allow-risky=yes --using-cache=false' + run: | + php-cs-fixer fix --diff --dry-run --allow-risky=yes --using-cache=false - name: 'Check composer.json' - run: 'composer-normalize --diff --dry-run --indent-size=4 --indent-style=space --no-update-lock' + run: | + composer-normalize --diff --dry-run --indent-size=4 --indent-style=space --no-update-lock phpunit: runs-on: 'ubuntu-20.04' @@ -55,7 +57,8 @@ jobs: - name: 'Get composer cache directory' id: 'composer_cache' - run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"' + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" - name: 'Cache dependencies' uses: 'actions/cache@v2' @@ -67,7 +70,23 @@ jobs: ${{ runner.os }}-composer- - name: 'Update dependencies' - run: 'composer update --prefer-dist --no-interaction --no-progress --ansi ${{ matrix.composer_flags }}' + run: | + composer update --prefer-dist --no-interaction --no-progress --ansi ${{ matrix.composer_flags }} - - name: 'Run tests' - run: 'vendor/bin/phpunit --group unit' + - name: 'Run unit tests' + run: | + vendor/bin/phpunit --group unit + + - name: 'Setup Elasticsearch' + run: | + sudo swapoff -a + sudo sysctl -w vm.swappiness=1 + sudo sysctl -w fs.file-max=262144 + sudo sysctl -w vm.max_map_count=262144 + ES_VERSION=${{ matrix.elasticsearch }} docker-compose --file=docker/docker-compose.proxy.yml --file=docker/docker-compose.es.yml up --detach + docker run --rm --network=docker_elastic curlimages/curl --max-time 120 --retry-max-time 120 --retry 120 --retry-delay 5 --retry-all-errors --show-error --silent http://es01:9200 + docker run --rm --network=docker_elastic curlimages/curl --max-time 120 --retry-max-time 120 --retry 120 --retry-delay 5 --retry-all-errors --show-error --silent http://es02:9200 + + - name: 'Run functional tests' + run: | + vendor/bin/phpunit --group functional diff --git a/Makefile b/Makefile index 7697297fb5..a1bf44baf3 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,3 @@ -# Default version to start ES on Docker, overide with `ES_VERSION=75 make start-docker` for ES 7.5 -ES_VERSION?=73 - .PHONY: clean clean: rm -fr tools vendor build composer.lock .php_cs.cache @@ -75,7 +72,7 @@ docker-start: docker-compose --file=docker/docker-compose.yml \ --file=docker/docker-compose.proxy.yml \ --file=docker/docker-compose.es.yml \ - --file=docker/docker-compose.es${ES_VERSION}.yml \ + --file=docker/docker-compose.es.yml \ up ${DOCKER_OPTIONS} .PHONY: docker-stop @@ -83,7 +80,6 @@ docker-stop: docker-compose --file=docker/docker-compose.yml \ --file=docker/docker-compose.proxy.yml \ --file=docker/docker-compose.es.yml \ - --file=docker/docker-compose.es${ES_VERSION}.yml \ down .PHONY: docker-run-phpunit diff --git a/docker/docker-compose.es.yml b/docker/docker-compose.es.yml index d45fbcc100..839f224384 100644 --- a/docker/docker-compose.es.yml +++ b/docker/docker-compose.es.yml @@ -1,12 +1,8 @@ version: '3.4' -# Template docker-compose file: the ES services are not valid, as there is no `:latest` tag on those images. -# -# This is done on purpose as the ES version can be chosen when starting docker -# As an example: see docker-compose.es75.yml services: es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:latest + image: docker.elastic.co/elasticsearch/elasticsearch-oss:${ES_VERSION:-7.3.2} command: > /bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment || ./bin/elasticsearch-plugin install --batch ingest-attachment; @@ -15,10 +11,11 @@ services: environment: - node.name=es01 - cluster.name=es-docker-cluster - - discovery.seed_hosts=es02 - - cluster.initial_master_nodes=es01,es02 + - cluster.initial_master_nodes=es01 + - discovery.seed_hosts=es01 - bootstrap.memory_lock=true - processors=1 + - http.port=9200 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - path.repo=/usr/share/elasticsearch/repository ulimits: @@ -29,11 +26,11 @@ services: - data01:/usr/share/elasticsearch/data - esrepo:/usr/share/elasticsearch/repository ports: - - 127.0.0.1:9200:9200 + - 9200:9200 networks: - elastic es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:latest + image: docker.elastic.co/elasticsearch/elasticsearch-oss:${ES_VERSION:-7.3.2} command: > /bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment || ./bin/elasticsearch-plugin install --batch ingest-attachment; @@ -42,8 +39,8 @@ services: environment: - node.name=es02 - cluster.name=es-docker-cluster + - cluster.initial_master_nodes=es01 - discovery.seed_hosts=es01 - - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - processors=1 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" @@ -64,4 +61,4 @@ volumes: networks: elastic: - driver: bridge \ No newline at end of file + driver: bridge diff --git a/docker/docker-compose.es71.yml b/docker/docker-compose.es71.yml deleted file mode 100644 index 28ec6a0111..0000000000 --- a/docker/docker-compose.es71.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.4' - -services: - es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.1.1 - es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.1.1 diff --git a/docker/docker-compose.es72.yml b/docker/docker-compose.es72.yml deleted file mode 100644 index f9ce78e0b9..0000000000 --- a/docker/docker-compose.es72.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.4' - -services: - es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.2.1 - es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.2.1 diff --git a/docker/docker-compose.es73.yml b/docker/docker-compose.es73.yml deleted file mode 100644 index bcc108e153..0000000000 --- a/docker/docker-compose.es73.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.4' - -services: - es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.3.2 - es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.3.2 diff --git a/docker/docker-compose.es74.yml b/docker/docker-compose.es74.yml deleted file mode 100644 index 892fd9236b..0000000000 --- a/docker/docker-compose.es74.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.4' - -services: - es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2 - es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2 diff --git a/docker/docker-compose.es75.yml b/docker/docker-compose.es75.yml deleted file mode 100644 index 08783d6ba0..0000000000 --- a/docker/docker-compose.es75.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.4' - -services: - es01: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.5.1 - es02: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.5.1 diff --git a/docker/docker-compose.proxy.yml b/docker/docker-compose.proxy.yml index 45ae963c2d..8993a68db1 100644 --- a/docker/docker-compose.proxy.yml +++ b/docker/docker-compose.proxy.yml @@ -6,8 +6,8 @@ services: volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro ports: - - 127.0.0.1:8000:8000 - - 127.0.0.1:8001:8001 + - 8000:8000 + - 8001:8001 networks: - elastic