ops(workflow): 添加开发环境部署配置并优化生产环境部署
This commit is contained in:
39
.gitea/workflows/deploy-dev.yaml
Normal file
39
.gitea/workflows/deploy-dev.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
name: 部署开发环境
|
||||
on: [ push ]
|
||||
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
env:
|
||||
RUNNER_TOOL_CACHE: /toolcache
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: 构建Docker镜像
|
||||
run: docker build -t dypid:latest .
|
||||
|
||||
- name: 导出镜像
|
||||
run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest
|
||||
|
||||
- name: 安装sshpass工具
|
||||
run: |
|
||||
apt update
|
||||
apt install -y sshpass
|
||||
|
||||
- name: 部署程序到测试服务器
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.TEST_SSH_HOST }}
|
||||
SSH_USER: ${{ secrets.TEST_SSH_USER }}
|
||||
SSH_PASSWORD: ${{ secrets.TEST_SSH_PASSWORD }}
|
||||
DEPLOY_DIR: "/data/dypid"
|
||||
run: |
|
||||
set -ex
|
||||
# 上传新镜像
|
||||
sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no release/dypid.tar $SSH_USER@$SSH_HOST:/tmp/dypid.tar
|
||||
# 重启程序
|
||||
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST \
|
||||
"docker load -i /tmp/dypid.tar \
|
||||
&& cd $DEPLOY_DIR \
|
||||
&& docker compose up -d \
|
||||
&& docker image prune -f"
|
Reference in New Issue
Block a user