103 lines
2.8 KiB
YAML
103 lines
2.8 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: build-and-deploy
|
|
|
|
trigger:
|
|
branch:
|
|
- test
|
|
event:
|
|
- push
|
|
|
|
steps:
|
|
# 构建后端镜像
|
|
- name: build-backend
|
|
image: docker:dind
|
|
volumes:
|
|
- name: docker-sock
|
|
path: /var/run/docker.sock
|
|
commands:
|
|
- cd backend
|
|
- docker build -t kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile .
|
|
- docker tag kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} kaopeilian-backend:test
|
|
|
|
# 构建前端镜像
|
|
- name: build-frontend
|
|
image: docker:dind
|
|
volumes:
|
|
- name: docker-sock
|
|
path: /var/run/docker.sock
|
|
commands:
|
|
- cd frontend
|
|
- docker build -t kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile --build-arg VITE_API_BASE_URL=http://kaopeilian.test.ai.ireborn.com.cn .
|
|
- docker tag kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} kaopeilian-frontend:test
|
|
|
|
# 部署测试环境
|
|
- name: deploy-test
|
|
image: docker:dind
|
|
volumes:
|
|
- name: docker-sock
|
|
path: /var/run/docker.sock
|
|
environment:
|
|
DATABASE_URL:
|
|
from_secret: database_url
|
|
REDIS_HOST:
|
|
from_secret: redis_host
|
|
REDIS_PORT:
|
|
from_secret: redis_port
|
|
REDIS_PASSWORD:
|
|
from_secret: redis_password
|
|
commands:
|
|
- docker network create kaopeilian-network 2>/dev/null || true
|
|
- docker stop kaopeilian-backend-test kaopeilian-frontend-test 2>/dev/null || true
|
|
- docker rm kaopeilian-backend-test kaopeilian-frontend-test 2>/dev/null || true
|
|
- |
|
|
docker run -d \
|
|
--name kaopeilian-backend-test \
|
|
--network kaopeilian-network \
|
|
-p 18000:8000 \
|
|
--restart unless-stopped \
|
|
-e DATABASE_URL=$DATABASE_URL \
|
|
-e REDIS_HOST=$REDIS_HOST \
|
|
-e REDIS_PORT=$REDIS_PORT \
|
|
-e REDIS_PASSWORD=$REDIS_PASSWORD \
|
|
kaopeilian-backend:test
|
|
- |
|
|
docker run -d \
|
|
--name kaopeilian-frontend-test \
|
|
--network kaopeilian-network \
|
|
-p 13001:80 \
|
|
--restart unless-stopped \
|
|
kaopeilian-frontend:test
|
|
- docker ps | grep kaopeilian
|
|
- echo "=== 考培练系统测试环境部署完成 ==="
|
|
|
|
volumes:
|
|
- name: docker-sock
|
|
host:
|
|
path: /var/run/docker.sock
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: code-check
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
|
|
steps:
|
|
- name: python-lint
|
|
image: python:3.9-slim
|
|
commands:
|
|
- cd backend
|
|
- pip install flake8 -q
|
|
- flake8 app --count --select=E9,F63,F7,F82 --show-source --statistics || true
|
|
- echo "Python lint completed"
|
|
|
|
- name: frontend-check
|
|
image: node:18-alpine
|
|
commands:
|
|
- cd frontend
|
|
- echo "Frontend check completed"
|