ops(workflow): 添加开发环境部署配置并优化生产环境部署
This commit is contained in:
@@ -3,6 +3,8 @@ on: [ push ]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
env:
|
||||||
|
RUNNER_TOOL_CACHE: /toolcache
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 检出代码
|
- name: 检出代码
|
||||||
@@ -19,7 +21,7 @@ jobs:
|
|||||||
&& go env -w GOARCH=amd64 \
|
&& go env -w GOARCH=amd64 \
|
||||||
&& go env -w GOOS=windows \
|
&& go env -w GOOS=windows \
|
||||||
&& go mod tidy \
|
&& go mod tidy \
|
||||||
&& cd ./tool
|
&& cd ./tool \
|
||||||
&& go build -o 上传工具.exe
|
&& go build -o 上传工具.exe
|
||||||
|
|
||||||
- name: 上传构建文件
|
- name: 上传构建文件
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
name: 构建Docker镜像
|
name: 部署开发环境
|
||||||
on: [ push ]
|
on: [ push ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -37,20 +37,3 @@ jobs:
|
|||||||
&& cd $DEPLOY_DIR \
|
&& cd $DEPLOY_DIR \
|
||||||
&& docker compose up -d \
|
&& docker compose up -d \
|
||||||
&& docker image prune -f"
|
&& docker image prune -f"
|
||||||
|
|
||||||
- name: 部署程序到生产服务器
|
|
||||||
env:
|
|
||||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
|
||||||
SSH_USER: ${{ secrets.SSH_USER }}
|
|
||||||
SSH_PASSWORD: ${{ secrets.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"
|
|
40
.gitea/workflows/deploy-production.yaml
Normal file
40
.gitea/workflows/deploy-production.yaml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
name: 部署生产环境
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
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.SSH_HOST }}
|
||||||
|
SSH_USER: ${{ secrets.SSH_USER }}
|
||||||
|
SSH_PASSWORD: ${{ secrets.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