From 6c4e9cd5c6ba048d0d472072e4d86d2a5af9d380 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Mon, 24 Jun 2024 09:54:57 +0800 Subject: [PATCH] =?UTF-8?q?:rocket:=20=E4=BF=AE=E6=94=B9=20e2e=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/e2e.yaml | 2 +- docker-compose-testing.yml | 79 +++++++++++++++++++++++++++++++ docker-compose.yml | 24 +++------- {e2e => docker/e2e}/Dockerfile | 0 {e2e => docker/e2e}/entrypoint.sh | 0 docker/e2e/testsuite.yaml | 57 ++++++++++++++++++++++ e2e/testsuite.yaml | 54 --------------------- 7 files changed, 144 insertions(+), 72 deletions(-) create mode 100644 docker-compose-testing.yml rename {e2e => docker/e2e}/Dockerfile (100%) rename {e2e => docker/e2e}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 docker/e2e/testsuite.yaml delete mode 100644 e2e/testsuite.yaml diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 90551896..0612fc7d 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -19,4 +19,4 @@ jobs: run: | sudo curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose sudo chmod u+x /usr/local/bin/docker-compose - docker compose up --build testing --exit-code-from testing --remove-orphans + docker compose up --build testing --exit-code-from testing --remove-orphans -f docker-compose-testing.yml diff --git a/docker-compose-testing.yml b/docker-compose-testing.yml new file mode 100644 index 00000000..606e9846 --- /dev/null +++ b/docker-compose-testing.yml @@ -0,0 +1,79 @@ +version: '3.3' +services: + orion-visor-service: + image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.0.9 + privileged: true + ports: + - 1081:80 + environment: + - MYSQL_HOST=orion-visor-mysql + - MYSQL_PORT=3306 + - MYSQL_DATABASE=orion_visor + - MYSQL_USER=root + - MYSQL_PASSWORD=Data@123456 + - REDIS_HOST=orion-visor-redis + - REDIS_PASSWORD=Data@123456 + - SECRET_KEY=uQeacXV8b3isvKLK + - DEMO_MODE=false + volumes: + - /data/orion-visor-space/docker-volumes/service/root-orion:/root/orion + healthcheck: + test: [ "CMD", "curl", "http://127.0.0.1:9200/orion-visor/api/server/bootstrap/health" ] + interval: 3s + timeout: 300s + retries: 200 + start_period: 3s + depends_on: + orion-visor-mysql: + condition: service_healthy + orion-visor-redis: + condition: service_healthy + links: + - orion-visor-mysql + - orion-visor-redis + orion-visor-mysql: + image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.0.9 + privileged: true + ports: + - 3307:3306 + environment: + - MYSQL_DATABASE=orion_visor + - MYSQL_USER=orion + - MYSQL_PASSWORD=Data@123456 + - MYSQL_ROOT_PASSWORD=Data@123456 + volumes: + - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql:/var/lib/mysql + - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql-files:/var/lib/mysql-files + - /data/orion-visor-space/docker-volumes/mysql/etc-mysql:/etc/mysql + healthcheck: + test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ] + interval: 3s + timeout: 60s + retries: 10 + start_period: 3s + orion-visor-redis: + image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.0.9 + privileged: true + ports: + - 6380:6379 + environment: + - REDIS_PASSWORD=Data@123456 + volumes: + - /data/orion-visor-space/docker-volumes/redis/data:/data + command: sh -c "redis-server /usr/local/redis.conf --requirepass $${REDIS_PASSWORD}" + healthcheck: + test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] + interval: 3s + timeout: 60s + retries: 10 + start_period: 3s + testing: + build: + context: ./docker/e2e + environment: + SERVER: http://orion-visor-service:80 + depends_on: + orion-visor-service: + condition: service_healthy + links: + - orion-visor-service diff --git a/docker-compose.yml b/docker-compose.yml index 1d6fd3a3..6a7d8f39 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,9 +16,9 @@ services: - SECRET_KEY=uQeacXV8b3isvKLK - DEMO_MODE=false volumes: - - /data/orion-visor-space/docker-volumes/orion-visor-service/root-orion:/root/orion + - /data/orion-visor-space/docker-volumes/service/root-orion:/root/orion healthcheck: - test: ["CMD", "curl", "http://127.0.0.1:9200/orion-visor/api/server/bootstrap/health"] + test: [ "CMD", "curl", "http://127.0.0.1:9200/orion-visor/api/server/bootstrap/health" ] interval: 3s timeout: 300s retries: 200 @@ -42,11 +42,11 @@ services: - MYSQL_PASSWORD=Data@123456 - MYSQL_ROOT_PASSWORD=Data@123456 volumes: - - /data/orion-visor-space/docker-volumes/orion-visor-mysql/var-lib-mysql:/var/lib/mysql - - /data/orion-visor-space/docker-volumes/orion-visor-mysql/var-lib-mysql-files:/var/lib/mysql-files - - /data/orion-visor-space/docker-volumes/orion-visor-mysql/etc-mysql:/etc/mysql + - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql:/var/lib/mysql + - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql-files:/var/lib/mysql-files + - /data/orion-visor-space/docker-volumes/mysql/etc-mysql:/etc/mysql healthcheck: - test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306"] + test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ] interval: 3s timeout: 60s retries: 10 @@ -59,7 +59,7 @@ services: environment: - REDIS_PASSWORD=Data@123456 volumes: - - /data/orion-visor-space/docker-volumes/orion-visor-redis/data:/data + - /data/orion-visor-space/docker-volumes/redis/data:/data command: sh -c "redis-server /usr/local/redis.conf --requirepass $${REDIS_PASSWORD}" healthcheck: test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] @@ -71,13 +71,3 @@ services: image: adminer ports: - 8081:8080 - testing: - build: - context: e2e - environment: - SERVER: http://orion-visor-service:80 - depends_on: - orion-visor-service: - condition: service_healthy - links: - - orion-visor-service diff --git a/e2e/Dockerfile b/docker/e2e/Dockerfile similarity index 100% rename from e2e/Dockerfile rename to docker/e2e/Dockerfile diff --git a/e2e/entrypoint.sh b/docker/e2e/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from e2e/entrypoint.sh rename to docker/e2e/entrypoint.sh diff --git a/docker/e2e/testsuite.yaml b/docker/e2e/testsuite.yaml new file mode 100644 index 00000000..0cef6acc --- /dev/null +++ b/docker/e2e/testsuite.yaml @@ -0,0 +1,57 @@ +#!api-testing +# yaml-language-server: $schema=https://linuxsuren.github.io/api-testing/api-testing-schema.json +name: orion-visor +api: | + {{default "http://orion-visor-service:80" (env "SERVER")}} +items: + - name: login + request: + api: /orion-visor/api/infra/auth/login + method: POST + header: + Content-type: application/json + body: | + {"username":"admin","password":"21232f297a57a5a743894a0e4a801fc3"} + expect: + bodyFieldsExpect: + code: 200 + - name: userPermission + request: + api: /orion-visor/api/infra/permission/user + header: + Authorization: Bearer {{.login.data.token}} + expect: + bodyFieldsExpect: + code: 200 + msg: "success" + - name: menu + request: + api: /orion-visor/api/infra/permission/menu + header: + Authorization: Bearer {{.login.data.token}} + expect: + bodyFieldsExpect: + code: 200 + msg: "success" + - name: haveUnRead + request: + api: /orion-visor/api/infra/system-message/has-unread + header: + Authorization: Bearer {{.login.data.token}} + - name: queryOperatorLog + request: + api: /orion-visor/api/infra/mine/query-operator-log + method: POST + header: + Authorization: Bearer {{.login.data.token}} + - name: hostList + request: + api: /orion-visor/api/infra/tag/list?type=HOST + header: + Authorization: Bearer {{.login.data.token}} + - name: queryHost + request: + api: /orion-visor/api/asset/host/query + method: POST + header: + Authorization: Bearer {{.login.data.token}} diff --git a/e2e/testsuite.yaml b/e2e/testsuite.yaml deleted file mode 100644 index 76a444d6..00000000 --- a/e2e/testsuite.yaml +++ /dev/null @@ -1,54 +0,0 @@ -#!api-testing -# yaml-language-server: $schema=https://linuxsuren.github.io/api-testing/api-testing-schema.json -name: orion-visor -api: | - {{default "http://orion-visor-service:80" (env "SERVER")}} -items: -- name: login - request: - api: /orion-visor/api/infra/auth/login - method: POST - header: - Content-type: application/json - body: | - {"username":"admin","password":"21232f297a57a5a743894a0e4a801fc3"} - expect: - bodyFieldsExpect: - code: 200 -- name: userPermission - request: - api: /orion-visor/api/infra/permission/user - header: - Authorization: Bearer {{.login.data.token}} - expect: - bodyFieldsExpect: - code: 200 - msg: "success" -- name: menu - request: - api: /orion-visor/api/infra/permission/menu - header: - Authorization: Bearer {{.login.data.token}} - expect: - bodyFieldsExpect: - code: 200 - msg: "success" -- name: haveUnRead - request: - api: /orion-visor/api/infra/system-message/has-unread - header: - Authorization: Bearer {{.login.data.token}} - expect: - bodyFieldsExpect: - data: false -- name: queryOperatorLog - request: - api: /orion-visor/api/infra/mine/query-operator-log - method: POST -- name: hostList - request: - api: /orion-visor/api/infra/tag/list?type=HOST -- name: queryHost - request: - api: /orion-visor/api/asset/host/query - method: POST