Files
dypid/.gitea/workflows/deploy-production.yaml
T
ygxbnet 28aec98414
部署开发环境 / deploy-dev (push) Successful in 1m22s
feat(api): 添加版本信息接口并完善构建流程
- 在api路由中添加/version接口用于显示程序版本信息
- 集成全局Version变量用于版本号管理
- 修改Dockerfile支持版本号注入构建参数
- 更新开发环境部署工作流添加版本信息构建
- 更新生产环境部署工作流添加版本信息构建
- 实现在版本接口中展示程序版本和Gin框架版本
2026-04-30 22:06:21 +08:00

45 lines
1.4 KiB
YAML

name: 部署生产环境
on:
workflow_dispatch:
jobs:
deploy-production:
env:
RUNNER_TOOL_CACHE: /toolcache
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 构建Docker镜像
run: |
set -x
git_hash=$(git rev-parse --short "$GITHUB_SHA")
build_date=$(TZ=Asia/Shanghai date +"%Y%m%d%H%M")
docker build --build-arg VERSION="release - $build_date - $git_hash" -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"