diff --git a/README.md b/README.md index e69de29..b6d6baa 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,27 @@ +# Common Workflows 模板说明 + +本目录用于存放通用的 Gitea/GitHub Actions 工作流模板,方便在不同项目之间复制复用。 + +## 可直接复制使用的模板 + +- **构建镜像工作流模板**:`build-images.yml` + - 作用:用于在 `<分支>` 分支上构建 Docker 镜像。 + - 触发条件: + - 推送到 `<分支>` 分支,并且改动包含 `Dockerfile*`、`requirements.txt` 或 `.gitea/workflows/build-images.yml` + - 手动触发 (`workflow_dispatch`) + - 使用方式: + 1. 复制该文件到目标项目的 `.gitea/workflows/build-images.yml`(或对应 CI 目录)。 + 2. 根据项目实际情况修改其中的 ``、`` 以及 `Dockerfile` 路径等参数。 + +- **Docker 部署工作流模板**:`deploy-docker.yml` + - 作用:在 `<分支>` 分支上,通过 `docker compose` 部署服务。 + - 触发条件: + - 推送到 `<分支>` 分支 + - 手动触发 (`workflow_dispatch`) + - 使用方式: + 1. 复制该文件到目标项目的 `.gitea/workflows/deploy-docker.yml`(或对应 CI 目录)。 + 2. 确认项目根目录存在 `docker-compose.yml`,并根据需要调整步骤中的命令。 + +## 其他文件/目录 + +`actions/`、`docs/` 等其他文件或目录仅作内部使用或扩展示例,对实际在项目中使用上述两个模板不是必需的,你可以忽略它们。 diff --git a/build-images.yml b/build-images.yml new file mode 100644 index 0000000..f809fd0 --- /dev/null +++ b/build-images.yml @@ -0,0 +1,36 @@ +name: Build Docker Images + +on: + push: + branches: + - <分支名> + paths: + - 'Dockerfile*' + - 'requirements.txt' + - '.gitea/workflows/build-images.yml' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: <分支名> + fetch-depth: 0 + + - name: Build Docker image + run: | + echo "====== 开始构建 Docker 镜像 ======" + docker build \ + -t : \ + -f Dockerfile \ + . + + echo "====== 验证镜像 ======" + docker image inspect : + + echo "✓ 构建完成" + \ No newline at end of file diff --git a/deploy-docker.yml b/deploy-docker.yml new file mode 100644 index 0000000..8b8ce36 --- /dev/null +++ b/deploy-docker.yml @@ -0,0 +1,37 @@ +name: Deploy with Docker Compose + +on: + push: + branches: + - <监听分支名> + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: <监听分支名> + sparse-checkout: | + .gitea/workflows/deploy-docker.yml + docker-compose.yml + sparse-checkout-cone-mode: false + + - name: Stop old services + run: | + echo "====== 停止旧服务 =======" + docker compose down || true + echo "✓ 旧服务已停止" + + - name: Deploy with Docker Compose + run: | + echo "====== 开始部署服务 ======" + + # 启动所有服务 + echo "启动服务..." + docker compose up -d || true + + echo "" + echo "====== 部署完成 ======="