diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index f340f6e27..5fdf3052b 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -17,7 +17,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Start compose - run: docker-compose up --build --exit-code-from quest-load + run: docker-compose -f docker-compose-smoke-test.yaml up --build --exit-code-from quest-smoke - name: Stop compose if: always() - run: docker-compose down + run: docker-compose -f docker-compose-smoke-test.yaml down diff --git a/.github/workflows/load-test.yaml b/.github/workflows/load-test.yaml new file mode 100644 index 000000000..4fe975e78 --- /dev/null +++ b/.github/workflows/load-test.yaml @@ -0,0 +1,23 @@ +name: Load tests + +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'helm/**' + - 'assets/**' + - '**.md' + +jobs: + + docker-compose-test: + name: Docker Compose based load tests + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Start compose + run: docker-compose -f docker-compose-load-test.yaml up --build --exit-code-from quest-load + - name: Stop compose + if: always() + run: docker-compose -f docker-compose-load-test.yaml down diff --git a/docker-compose.yaml b/docker-compose-load-test.yaml similarity index 77% rename from docker-compose.yaml rename to docker-compose-load-test.yaml index 76325b4ee..3f959c59f 100644 --- a/docker-compose.yaml +++ b/docker-compose-load-test.yaml @@ -58,34 +58,15 @@ services: delay: 20s max_attempts: 3 - quest-smoke: - image: ghcr.io/parseablehq/quest:main - command: ["smoke", "http://parseable:8000", "parseableadmin", "parseableadmin"] - networks: - - parseable-internal - depends_on: - parseable: - condition: service_started - deploy: - restart_policy: - condition: on-failure - delay: 20s - max_attempts: 3 - quest-load: image: ghcr.io/parseablehq/quest:main command: ["load", "http://parseable:8000", "parseableadmin", "parseableadmin", "20"] networks: - parseable-internal depends_on: - parseable: - condition: service_started - quest-smoke: - condition: service_started + - parseable deploy: restart_policy: condition: on-failure delay: 20s max_attempts: 3 - - diff --git a/docker-compose-smoke-test.yaml b/docker-compose-smoke-test.yaml new file mode 100644 index 000000000..8cd564e75 --- /dev/null +++ b/docker-compose-smoke-test.yaml @@ -0,0 +1,72 @@ +version: "3.7" + +networks: + parseable-internal: + +services: + minio: + image: minio/minio:RELEASE.2023-02-10T18-48-39Z + entrypoint: + - sh + - -euc + - | + mkdir -p /tmp/minio/parseable && \ + minio server /tmp/minio + environment: + - MINIO_ROOT_USER=parseable + - MINIO_ROOT_PASSWORD=supersecret + - MINIO_UPDATE=off + ports: + - 9000 + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ] + interval: 15s + timeout: 20s + retries: 5 + networks: + - parseable-internal + + parseable: + build: + context: . + dockerfile: Dockerfile + command: ["parseable", "s3-store"] + ports: + - 8000 + environment: + - P_S3_URL=http://minio:9000 + - P_S3_ACCESS_KEY=parseable + - P_S3_SECRET_KEY=supersecret + - P_S3_REGION=us-east-1 + - P_S3_BUCKET=parseable + - P_STAGING_DIR=/tmp/data + - P_USERNAME=parseableadmin + - P_PASSWORD=parseableadmin + - P_CHECK_UPDATE=false + networks: + - parseable-internal + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8000/api/v1/liveness" ] + interval: 15s + timeout: 20s + retries: 5 + depends_on: + - minio + deploy: + restart_policy: + condition: on-failure + delay: 20s + max_attempts: 3 + + quest-smoke: + image: ghcr.io/parseablehq/quest:main + command: ["smoke", "http://parseable:8000", "parseableadmin", "parseableadmin"] + networks: + - parseable-internal + depends_on: + - parseable + deploy: + restart_policy: + condition: on-failure + delay: 20s + max_attempts: 3