在对 CI/CD 有基本了解後,接下来就要把我们的主角 TeamCity 安装起来。TeamCity 提供 3 种安装方式,在接下的几天会逐一介绍,读者可以依据自己的条件与需求选择一个最适合的方式。首先介绍的第一种方式就是直接下载官方软件包,搭配 JDK 直接启动。
由於整个 TeamCity 软件都是用 Java/Kotlin 打造的,官方也将整个系统封装成 Jar 档,所以在安装 TeamCity 前要先有 JVM 运行环境。以 TeamCity 来说,其绑定的 JDK 版本是 8,请务必使用正确的 JDK 版本才不会发生预期外的错误。以下分两个主流作业系统说明如何建立 JDK 8 的执行环境:
在 JVM 上开发程序时,通常你不会只用一套 JDK 版本,加上我想减少记忆负担,想用同一种方式在 macOS 及 Linux 上建立 JDK 8 的执行环境,所以我强烈推荐大家使用 SDKMAN 。
SDKMAN 是一个 SDK 管理器,可以协助我们安装几乎所有 JVM 开发者会需要用到的 SDK,像是 JDK、Kotlin Compiler、Gradle…等,若有更新时还可以一键下载,需要安装多个不同版本的 JDK 也没问题,可以透过指令去切换环境里的 JDK,甚至还可以帮我们更新 PATH 设定,非常方便!
安装 SDKMAN 很简单,只要将官网上的指令贴在终端机并执行即可:
$ curl -s "https://get.sdkman.io" | bash
SDKMAN 是用 Bash Script 实作,没有相依其他工具,安装起来完全无痛。安装好後重新载入就可以用 $ sdk version
指令来验证安装是否成功。
紧接着安装 JDK,首先要取得 JDK 8 的 Identifier,先用 list
指令查询:
$ sdk list java # 取得所有 JDK 清单
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 8.0.292.j9 | adpt | | 8.0.292.j9-adpt
| | 8.0.292.hs | adpt | | 8.0.292.hs-adpt
| | 8.0.242.hs | adpt | | 8.0.242.hs-adpt
Corretto | | 8.302.08.1 | amzn | | 8.302.08.1-amzn
Zulu | | 8.0.302 | zulu | | 8.0.302-zulu
| | 8.0.302.fx | zulu | | 8.0.302.fx-zulu
# 为节省版面部份输出已被精简
从上面的画面可以看到,JDK 8 也有很多版本,每一个版本对应到的 Identifier 都不一样。假设我想安装 AdoptOpenJDK
的 8.0.292.hs
这个版本,对应到的 Identifier 就是 8.0.292.hs-adpt
。把这个字串记下来,再用 install
指令安装:
$ sdk install java 8.0.292.hs-adpt
SDKMAN 就会到网路上把 AdoptOpenJDK 8.0.292.hs 抓下来安装,也会在安装结束前询问要不要将这个版本的 JDK 做为系统预设 Shell 环境的 JDK。假如你安装的这台主机就只跑 TeamCity 的话就直接按 Y 设成预设吧!假如不是的话,之後在启动 TeamCity 之前,记得要先将环境切成 JDK 8。
$ sdk use java 8.0.292.hs-adpt
假如是 Windows 作业系统的话,我会推荐使用 Scoop 这个套件管理系统。你可以把 Scoop 想成是 Windows 版本 apt,许多 CLI 套件都可以用它来安装。安装 Scoop 的方式很简单,直接把官网的几行指令贴在 PowerShell 里即可:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 假如有 Policy 警告,则再补这一行
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
接着要让 Scoop 取得所有 JDK 清单(在 Scoop 叫 Bucket),在 PowerShell 里输入:
$ scoop bucket add java
至於要安装的 JDK 版本名称可以参考 Bucket 的 Repository ,以我们的例子来说,我想安装 adopt8-upstream
这个版本,就在 PowerShell 里输入:
$ scoop install adopt8-upstream
假如有安装多个版本,别忘了在启动 TeamCity 前切换到 JDK 8 喔!
$ scoop reset adopt8-upstream
环境准备好後,接着请到 TeamCity 官网下载页 下载软件包,版本请统一选择 Linux (.tar.gz) 即可。
下载後,请将这个 .tar.gz
的压缩档解开,并将资料夹放到你想要的位置(比方说在 Unix-like 作业系统上的 /opt
底下、在 Windows 作业系统上的 C:\Apps
)。完成後开启终端机,将工作目录切换到 TeamCity 资料夹,进入底下 bin
资料夹後执行 runAll
脚本。
# Unix-like 执行 Bash 脚本
$ bash .../bin/runAll.sh start
# Windows 执行 bat 脚本
$ .\...\bin\runAll.bat start
runAll
脚本是 TeamCity 预先准备好单一启动指令,所有启动的复杂步骤都已经先准备好了,若看到终端机里回应启动完成就代表 TeamCity 已经准备好第一次的启动设定,我们後续会再详细说明首次启动设定要做的动作。若要将 TeamCity 关闭,则将刚刚的指令从 start
换成 stop
即可。
本篇文章使用的安装方式,比较适合以下几种情境:
<<: Day 8. Hashicorp Nomad: Application Logs
>>: Day 8 | 比较漂亮的清单-客制化Adapter
讲到云端相关的议题,一定会看到的就是 IaaS 、 PaaS 与 SaaS。这几个名词可以算是云端的...
在正文之前要说一下, 其实我觉得在留言板用文字编辑器不是个好主意, 反而应该放在心情随笔的地方, (...
在 5 年前,不只在开会时会这样要求,也常常说一个概念:SEO 是一种 Multi-Stack 的工...
这几天到处问别人「怎样算好PM?」 我的前同事告诉我公司有标准答案: MS leadership p...
更动 Menu 大作战 暨【领域展开 13 式】 有了骨头与皮肤,再搞清楚主要肌群 Menu 层级与...