使用Shell和Docker Executor在Java应用程序中实施CI/CD
Shell执行器是一个基本的执行器,有助于在安装了GitLab Runner的计算机上进行解决方案的本地开发。Windows Batch已经被废弃,转而使用Bash和Windows PowerShell脚本。
你需要在shell执行器模式下设置GitLab Runner,并配置好路径才能开始使用。
在这种情况下,解决方案将在安装了GitLab Runner的机器上使用shell执行器在本地生成。如果你在Linux上运行GitLab,那么你需要安装所有必要的软件。
.Net应用程序在Windows环境下运行。
前提条件
要完成这篇文章,你需要。
- 有一台运行Windows操作系统的电脑。
- 将git下载到你的机器上。
- 下载
MSBuild或使用Visual Studio中安装的visual Studio构建工具。 - 使用用于安装
MSBuild的相同的.exe文件来安装VS Web Build。我们可以通过在命令行中运行命令vs_buildtools.exe — add Microsoft.VisualStudio.Workload.WebBuildTools来实现。 - 从官方网站下载Nuget来重新安装我们应用程序的软件包。
安装GitLab运行器
要在Windows上安装和运行GitLab Runner,你需要Git和用户密码。更多信息请见先决条件部分的Git下载链接。
分步指南。
- 首先在你的电脑上创建一个文件夹。比如说
H:\Runners - 要安装GitLab Runner,请下载适用于Windows 64位或32位操作系统的二进制文件,并将其放到你创建的文件夹中。请注意,下面的内容假设你已经将
GitLab-runner.exe改为GitLab-runner(可选)。
下的二进制文件取决于你的计算机操作系统的规格。
- 请确保GitLab Runner目录和可执行文件有
Write rights限制。否则,普通用户可以通过替换自己的可执行文件并运行任何具有高权限的代码。 - 以管理员身份打开一个命令提示符。
- 对运行器进行注册。这可以通过将一个运行器连接到一个或多个GitLab实例的过程来实现。注册多个运行器就像在同一主机系统上重复注册命令一样简单。
下面是注册一个运行器的过程。
- 运行
./gitlab-runner.exe register命令来注册一个运行器。 - 必须输入你的GitLab实例的URL(也被称为GitLab-ci协调器的URL)。
- 要注册一个运行者,请输入你收到的令牌。
- 命名并描述该运行程序。这个值以后可以通过GitLab的用户界面进行修改。
- 用逗号分隔与运行器相关的标签。这个值可以在以后通过GitLab的用户界面进行修改。
- 提供运行器的执行器。大多数情况下输入docker。
- 对于那些没有定义默认镜像的项目,你会被要求选择一个。如果你选择了docker作为你的执行器,请使用
GitLab-ci.yml。
- 将GitLab Runner安装为一个服务并启动它。你可以使用内置的系统账户,使用命令
.\gitlab-runner.exe installs来安装,并使用.\gitlab-runner.exe start来启动运行器(这是首选)。或者使用一个用户账户来执行该服务。使用命令.\gitlab-runner.exe install --user "Input your user name" --password "Input your password"来安装。并且,.\gitlab-runner.exe start来启动运行器。
配置运行器
GitLab Runner是一个构建实例,可以用来在几台机器上执行工作,并将结果发送到GitLab。它可以被安装在不同用户的电脑、服务器和本地设备上。
一旦安装了运行器,你可以选择使其共享或特定。
你可以使用特定的或共享的运行程序来服务你的工作。
共享运行程序 - 这些运行程序对于在许多项目中具有类似要求的作业很方便。你可以用单个或少量的运行程序来处理它们,而不是为许多项目使用几个运行程序,这些运行程序易于维护和更新。
特定运行程序 - 当工作有特定的标准或要求时,这些运行程序对部署特定项目很重要。特定运行程序使用FIFO(先进先出)的方法来组织他们的数据,它以先到先得的方式工作。个人运行者可以用项目注册令牌注册;某个运行者的加密版本。
对某一特定的运行者进行加密
你可以通过加密来防止某个特定的运行器被用于其他项目。要做到这一点,你必须首先注册一个运行程序,如上面的GitLab运行程序安装指南中所述。
使用以下步骤对运行器进行加密。
- 转到你的项目,并登录到你的GitLab账户。
- 通过选择设置页面上的CI/CD选项,你可以展开运行器的设置选项。
- 在运行器的设置部分可以找到该项目已激活的运行器。
- 现在点击铅笔按钮。
- 然后,运行器屏幕将被打开,锁定到当前项目的选项将被选中。通过点击保存更改,你就可以保留这些更改。
保存修改后,它将成功更新运行器。
保护运行程序
可以对运行程序进行保护,以保存关键数据。
你可以按照下面的说明来保护运行器。
- 按照上一节(加密特定的运行程序)的确切过程(从步骤1到4)进行。
- 点击铅笔按钮后,你会得到运行器屏幕;从那里选择受保护的选项。除非你点击保存更改按钮,否则你的改动将是暂时的。
如何创建一个.gitlab-ci.yml文件
YAML 文件.gitlab-ci.yml 是用来配置 GitLab CI/CD 的特定指令的。
你在这个文件中定义以下内容。
- 运行器应该做的工作的结构和顺序。
- 运行者在面对各种情况时应该做出的选择。
例如,当你提交到默认分支以外的分支时,你可能想运行一组测试。你想运行与之前相同的套件,但另外,当你提交到默认分支时,发布你的应用程序。
.gitlab-ci.yml 文件包含所有这些信息。
要制作一个.gitlab-ci.yml 文件,请遵循以下步骤。
- 从左边的侧边栏选择
Project information > Details。 - 在文件列表上选择你想提交的分支,然后点击
+图标,再点击新文件。 - 在文件名栏中输入
.gitlab-ci.yml,并在较大的窗口中粘贴以下代码。
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
test-job1:
stage: test
script:
- echo "This job puts things to the test."
test-job2:
stage: test
script:
- echo "Unlike test-job1, this job requires more time to complete."
- echo "Thereafter, it executes the sleep command for 20 seconds."
- echo "Test-job2 is extended by 20 seconds."
- sleep 20
deploy-prod:
stage: deploy
script:
- echo "This job uses the $CI_COMMIT_BRANCH branch to deploy something."
- 点击提交,保存你的修改。
在创建GitLab-ci.yml 文件时,人们必须分阶段安排代码。阶段是一组指令,你的代码必须遵循这些指令才能到达其最终目的地(生产)。
你可以在GitLab中创建任意数量、任意名称的阶段。为此,你需要把它们放在某个阶段的键下,并指定你希望它们运行的顺序。然后,GitLab 会逐一检查它们。如果其中一个失败了,其他的将不会运行。
这些阶段包括
- 构建阶段
- 测试阶段
- 部署阶段
构建阶段- 这个阶段将构建解决方案,确认它是可以构建的。$GITLAB_USER_LOGIN ;在这个变量中,启动工作的用户是由他或她的用户名来识别的。
测试阶段- 这个阶段将对我们的解决方案进行测试。
部署阶段- 在这个阶段,我们将把我们构建的解决方案付诸实践。从上面的例子脚本中,CI_COMMIT_BRANCH 变量显示了提交分支的名称。这些功能在所有分支管道中都可用,包括默认的分支管道。不支持合并请求和标签管线。
总结
在这篇文章中,我们已经了解了什么是GitLab运行器,它们的安装和配置。
最后,我们研究了GitLab yml文件的创建。我敦促大家深入挖掘这个话题,并能够建立具体的yml文件。