Files
freedom-admin/.gitea/workflows/deploy.yml
T
zhangjiaxun f07c1ae6b8
CI/CD Deploy (Admin) / 构建后端镜像并部署 (push) Successful in 4m23s
perf(ci): 后端镜像构建优化——腾讯云Maven镜像源+BuildKit缓存
- 镜像源从阿里云换成腾讯云(内网直连,解决依赖下载仅几十KB/s的问题)
- RUN 加 BuildKit cache mount 持久化 /root/.m2/repository,跨构建复用
- CI 构建步骤显式启用 DOCKER_BUILDKIT=1
2026-10-16 23:53:55 +08:00

65 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================
# freedom-admin CI/CD 工作流(后端)
# 触发条件:push 到 master 分支时自动构建并部署
#
# 环境(已实测确认,act_runner v0.6.1):
# - runner: local-runner,labels: ubuntu-latest
# - /var/run/docker.sock 由 act_runner 自动挂载,切勿重复声明
# (重复会报 Duplicate mount point: /var/run/docker.sock)
# - /opt/freedom 必须经 container.options 的 -v 挂载,且在
# runner-config.yml 的 container.valid_volumes 白名单内,否则会被静默剥离
# - host.docker.internal 由 container.options 的 --add-host 解析到宿主
# - act_runner 不会自动检出代码到 /workspace(实测为空目录),需自行拉取
# - 部署目录:/opt/freedom/deploy(含 docker-compose.yml 与 .env)
# =============================================================
name: CI/CD Deploy (Admin)
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build-and-deploy:
name: 构建后端镜像并部署
runs-on: ubuntu-latest
container:
image: docker:24.0-cli
options: -v /opt/freedom:/opt/freedom --add-host=host.docker.internal:host-gateway
steps:
- name: 安装 git
run: apk add --no-cache git
- name: 拉取 master 代码
run: |
set -euo pipefail
rm -rf /opt/freedom/workspace-admin
git clone --depth 1 --branch master \
"http://oauth2:${GITHUB_TOKEN}@host.docker.internal:3000/${GITHUB_REPOSITORY}.git" \
/opt/freedom/workspace-admin
cd /opt/freedom/workspace-admin
echo "==> 已拉取代码,最新提交:"
git log -1 --oneline
env:
GITHUB_TOKEN: ${{ github.token }}
- name: 构建后端镜像
run: |
set -euo pipefail
export DOCKER_BUILDKIT=1
docker build -t freedom-admin:latest /opt/freedom/workspace-admin
- name: 部署后端服务
run: |
set -euo pipefail
cd /opt/freedom/deploy
test -f docker-compose.yml || { echo "错误: 缺少 docker-compose.yml,请先初始化部署目录"; exit 1; }
test -f .env || { echo "错误: 缺少 .env,请先初始化部署目录"; exit 1; }
docker compose up -d --force-recreate backend
- name: 确认部署结果
run: |
cd /opt/freedom/deploy
docker compose ps backend