秋实-Allenyou的小窝

稻花香里说丰年,听取WA声一片

【教程】如何用 Git 快速搭建简单的 CI

2024/2/18

最近折腾博客需要一个 CI 完成自动部署的任务,但是现有的 GitLab CE 或 Gitea + Drone 方案部署都过于麻烦,为了一个博客部署显然有些过于麻烦,所以我用 Git Hooks 模仿了一个简单的 CI 出来。

前置知识

  • Git 基本操作
  • Linux 基本常识
  • Bash Script 的基本知识

省流助手

在服务器上建立一个 Git Repo,使用 Git 提供的 post-receive Hook 在接收到推送时执行指定脚本,达到简单 CI 的效果。

步骤

配置服务器

在服务器上配置 sshd_config 打开密钥登录,并上传密钥。

创建 Git Repo

服务器上某路径(要求你的用户可读可写)执行以下命令(假定在你的 home 路径下)

git init --bare test.git

这样就创建成功了一个只有 .git 文件夹的 Git Repo

配置 Git

本地创建 Git Repo 并配置 user.email / user.name 等参数,使用 git remote 命令关联服务器上的 Repo。

在关联时请使用 ssh 链接,例如 allenyou@my-server-ip:~/test.git

此处形式为用户名@服务器地址:服务器端创建的repo路径

创建 Hook

服务器端的 test.git/hooks 文件夹中创建 post-receive 文件并且授予执行权限。在里面写以下内容:

#!/bin/bash

git --git-dir=~/test.git --work-tree=某个文件夹 checkout -f master

# 以下写你自己需要在 CI 中运行的命令

此处“某个文件夹”可以替换成任何你有读写权限的空白目录,你的代码将会被自动复制到该目录下

master 可以自行替换成你的 branch 名称

【教程】如何用 Git 快速搭建简单的 CI

https://www.allenyou.wang/post/15

本文作者

秋实-Allenyou

授权协议

CC BY-NC-SA 4.0