Hacking on Gitea
快速入门
要获得快速工作的开发环境,您可以使用 Gitpod。
安装 Golang
您需要 安装 go 并设置您的 go 环境。
接下来,使用 npm 安装 Node.js ,这是构建 JavaScript 和 CSS 文件的必要工具。最低支持的 Node.js 版本是 16 并且推荐使用最新的 LTS 版本。
注意 :当执行需要外部工具的 make 任务时,比如
make watch-backend
,Gitea 会自动下载并构建这些必要的组件。为了能够使用这些,你必须
将 "$GOPATH"/bin
目录加入到可执行路径上。如果你不把go bin目录添加到可执行路径你必须手动
指定可执行程序路径。
注意2 :Go版本 1.20 或更高版本是必须的。Gitea 使用 gofmt
来
格式化源代码。然而,gofmt
的结果可能因 go
的版本而有差异。因此推荐安装我们持续集成使用
的 Go版本。截至上次更新,Go 版本应该是 1.20。
安装 Make
Gitea 大量使用 Make
来自动化任务和改进开发。本指南涵盖了如何安装 Make。
在 Linux 上
使用包管理器安装。
在 Ubuntu/Debian 上:
sudo apt-get install make
在 Fedora/RHEL/CentOS 上:
sudo yum install make
在 Windows 上
Make 的这三个发行版都可以在 Windows 上运行:
- 单个二进制构建。复制到某处并添加到
PATH
。 - MinGW-w64 / MSYS2。
- Chocolatey包管理器。运行
choco install make
注意 :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 set 命令,例如 set TAGS=bindata
。
下载并克隆 Gitea 源代码
获取源代码的推荐方法是使用 git clone
。
git clone https://github.com/go-gitea/gitea
(自从go modules出现后,不再需要构建 go 项目从 $GOPATH
中获取,因此不再推荐使用 go get
方法。)
派生 Gitea
如上所述下载主要的 Gitea 源代码。然后,派生 Gitea 仓库, 并为您的本地仓库切换 git 远程源,或添加另一个远程源:
# 将原来的 Gitea origin 重命名为 upstream
git remote rename origin upstream
git remote add origin "git@github.com:$GITHUB_USERNAME/gitea.git"
git fetch --all --prune
或者:
# 为我们的 fork 添加新的远程
git remote add "$FORK_NAME" "git@github.com:$GITHUB_USERNAME/gitea.git"
git fetch --all --prune
为了能够创建合并请求,应将分叉存储库添加为 Gitea 本地仓库的远程,否则无法推送更改。
构建 Gitea(基本)
从源代码构建的最简单推荐方法是:
TAGS="bindata sqlite sqlite_unlock_notify" make build
build
目标将同时执行 frontend
和 backend
子目标。如果存在 bindata
标签,资源文件将被编译成二进制文件。建议在进行前端开发时省略 bindata
标签,以便实时反映更改。
有关所有可用的 make
目标,请参阅 make help
。另请参阅 .drone.yml
以了解我们的持续集成是如何工作的。
持续构建
要在源文件更改时运行并持续构建:
# 对于前端和后端
make watch
# 或者:只看前端文件(html/js/css)
make watch-frontend
# 或者:只看后端文件 (go)
make watch-backend
在 macOS 上,监视所有后端源文件可能会达到默认的打开文件限制,这可以通过当前 shell 的 ulimit -n 12288
或所有未来 shell 的 shell 启动文件来增加。