| 2022-04-22
GoCD 是什么
GoCD 是一个持续交付服务器。GoCD 帮助您自动化,并优化构建测试发布周期,从而无需担心、持续交付你的软件产品。
GoCD 开发环境的建立
官方声明的软件环境
GoCD 需要下列软件包
Git >= 2.20 (https://git-scm.com/downloads)
64-bit JDK 17+ (We recommend downloading it from OpenJDK, or Adoptium)
NodeJS >= 16 (https://nodejs.org/en/download/)
Yarn v1 package manager
Generally, `npm install -g yarn` will suffice;
otherwise, see https://yarnpkg.com/en/docs/install
C/C++ build toolchain: certain node packages might need to build native extensions
gcc/g++ (linux only)
Microsoft Visual C++ Build Tools 2015 (Windows only).
Microsoft Build Tools 2015 (Windows only).
以下内容在 MacOS上验证通过
第一步:准备工作
使用 homebrew
安装
$> brew install git yarn openjdk nodejs
- MacOS Big Sur V11.6.5
- gradle version Gradle 7.4.2
- IntelliJ Idea 2022.1 CE
- Java Version “17.0.2” 2022-01-18 LTS
- node.js version 17.9.0
- Perforce Version: P4D/MACOSX1010X86_64/2020.1/1953492 (2020/04/24) License: none(免费版本)
- Git version 2.35.3
- SVN V1.14.1 (r1886195)
第二步:获取代码
The main repository is: https://github.com/gocd/gocd
第三步:验证可以本地构建 Zip 安装包
在 Terminal 进入刚下载的 gocd
目录,并运行构建命令
cd gocd
$> gradle clean agentGenericZip serverGenericZip
或者
$> gradle clean agentGenericZip serverGenericZip
成功构建后,通过下面的命令查看, 得到类似如下输出
$ ls installers/target/distributions/zip/
go-agent-16.7.0-3795.zip go-server-16.7.0-3795.zip
解压后使用下面命令查看,你会得到类似如下输出
$ find . -name target -type d
./addon-api/database/target
./agent/target
...
./tfs-impl/target
./util/target
如下一切正常,我们就可以设置 IDE了。
第四步:设置 IntelliJ Idea
对于TypeScript、JavaScript、Sass、Ruby和其他部分, 有人会使用其他编辑器,例如 VS code、Sublime Text、Vim等,这些都是完全可选的。
1. IDEA 准备工作
使用下面命令,先组织一下工作目录
gradle clean prepare
2. 通过 Build.gradle 导入项目
在准备阶段成功后,启动 IDEA,并通过选择gocd
目录下的 build.gradle
文件打开该项目。
build.gradle 文件位于工作目录gocd
下。
此时,IntelliJ IDEA可能会提示你:单击导入 gradle
项目 (import gradle project)
3. 设置 JDK
点击菜单「File」-> 「Project Structure」 ,在界面中选择装好的 JDK 17
4. 设置 Gradle Settings
点击菜单「IntelliJ IED」,在界面中选择 Gradle,并设置如下。
5. 设置 Junit 模板
- 点击菜单 「
Run
」 -> 「Edit configurations...
」 -> 「Edit Configuration Templates…」 - 左侧列表中点击
JUnit 5
,然后再点击右侧出现的选项add new configuration
- 点击「
Modify Options
」,出现下拉菜单,点击「Add VM Options
」
- 在带有
-ea
文字的VM Option
一栏中添加参数,如下所示
-ea --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED
Junit 模板设置完成,以后在 IDEA 中运行 Junit 5 测试用例时,都会使用这个模板。
第五步: 在 IntelliJ Idea 中直接启动 DevelopmentServer
找到类文件
DevelopmntServer.java
,选择函数main()
后,运行它。 此次会失败。失败后,打开 「
Run
」-> 「Edit Configration
」,加入下面的参数,如下图所示。
--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -Xmx2g
- 将
DevelopmentServer
的Working Directory
设置为Server
,见上图。
此时,即可再次运行 DevelopmentServer
,结果应如下图所示。
- 打开浏览器,访问
http://localhost:8153
,可见如下页面。
第六步: 在 IntelliJ Idea 中直接启动 DevelopmentAgent
- 与
DevelopmentServer
的步骤一样,但仅需要设置Working Directory
为Agent
,见下图。
- 在 IDEA 中执行
DevelopmentAgent.main()
,可见下图。
- 打开浏览器,访问
http://localhost:8153
,点击页面上方的Agent
,可见刚刚启动并自动注册的Agent。
注意需要保持 DevelopmentServer
运行。
第七步:运行 Javascript 测试用例
在开发环境中运行 Javascript 测试用例(运行非常快,分钟级)
- 首先在 IDEA 中启动
DevelopmentServer
- 在浏览器中打开
http://localhost:8153/go/assets/webpack/_specRunner.html
可以看到如下界面。
如果想在浏览器上要运行老的 Javascript Spec,先运行下面的命令:
$> gradle jasmineOldServer
然后,打开浏览器,访问http://localhost:8888/
可以看到如下界面。
在CI环境中运行 Javascript 测试用例(运行非常慢)
在命令行中运行 下面的命令
$> gradle jasmine