gpt4 book ai didi

jenkins - 我如何创建一个必须在提交时执行测试的 Jenkins 作业?

转载 作者:行者123 更新时间:2023-12-02 10:56:54 29 4
gpt4 key购买 nike

我从 Jenkins 开始。

我希望每次执行 git 提交(或推送?)时,我的 ionic 项目的 Jasmine 测试都会被执行,并且必须在提交完成之前工作。

实际上,它有两个问题:

  • 如何使用 Jenkins 执行 jasmine 测试?

此时我执行测试:

npm test
  • 如何通过提交(或推送)执行此测试?

谢谢最好的问候

最佳答案

您有两种方法来完成任务。

  1. GIT Hook:提交或推送后从 GIT 执行 Jasmine 测试
  2. 使用 GIT Hook 触发 Jenkins:从 Jenkins 检查存储库并执行 Jasmine 测试

来自 GIT 的 Hook

在 git 存储库中查找隐藏目录,您会发现一个名为“hooks”的目录,其中有许多钩子(Hook)示例:

首先列出您的存储库主目录的内容:

ls -ltra

您应该看到类似以下内容:

m.ortiz.montealegre@CPX-XYR3G1DTHBU ~/-argentina/.git
$ vim hooks/
applypatch-msg.sample pre-applypatch.sample pre-push.sample update.sample
commit-msg.sample pre-commit.sample pre-rebase.sample
post-update.sample prepare-commit-msg.sample pre-receive.sample

您拥有 how to setup hooks here 的完整指南.

在你的情况下,也许更新可以做到这一点:

update The update script is very similar to the pre-receive script, except that it’s run once for each branch the pusher is trying to update.

使用 GIT Hooks 从 Jenkins 触发

在本教程中,您将使用“轮询 SCM”设置 Jenkins 项目构建触发器,但不指定时间表。

然后使用来自 GIT 的 post-receive Hook 通知 Jenkins 作业有关更改:

http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>?token=<get token from git to build remotely>

我找到了那个例子here .

运行 Jasmine 测试

我不知道你使用的是哪个操作系统,但我希望它是一个漂亮的 Linux 盒子。

使用 Jenkins 可以实现几乎相同的效果。您需要考虑用户(您的用户)及其权限,并检查运行 Jenkins 实例的用户是否被允许执行相同的操作。

只需创建一个新的 Jenkins 项目并添加一个带有测试的 shell 执行步骤,就像您所说的那样:

npm test

关于您的特定环境有很多问题,但我认为这对您来说是一个很好的指南。

关于jenkins - 我如何创建一个必须在提交时执行测试的 Jenkins 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655792/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com