我正在使用谷歌浏览器。当我使用 Jenkins(这是远程服务,我无法控制它)时,部分 UI 以我的本地语言显示。我如何告诉 Jenkins 始终以英文显示消息?
由于配置错误,我在 Jenkins 作业中有超过 1700 次失败的构建。
我怎样才能有效地清洁它们?
我正在运行 Jenkins 的 shell 脚本,它使用 shebang options 启动 shell 脚本#!/bin/sh -ex。
根据Bash Shebang 的假人?, -x, “导致 shell 打印执行跟踪”,这对于大多数用途都非常有用——除了回声:
echo "Message"
Run Code Online (Sandbox Code Playgroud)
产生输出
+ echo "Message"
Message
Run Code Online (Sandbox Code Playgroud)
这有点多余,看起来有点奇怪。有没有办法保持-x启用,但只输出
Message
Run Code Online (Sandbox Code Playgroud)
而不是上面的两行,例如通过在 echo 命令前加上一个特殊的命令字符,或者重定向输出?
Jenkins 2 拥有管道,拥有一等公民。但是,在示例中,任务似乎是作为单个序列执行的:
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
// Get some code from a GitHub repository
git url: 'git@github.com:elifesciences/elife-bot.git'
// Mark the code build 'stage'....
stage 'Build'
echo "Unit tests will run here"
stage "Production"
echo "Deploying to production environment"
}
Run Code Online (Sandbox Code Playgroud)
对于部署到生产系统中,需要手动批准通常很有用;有没有办法插入手动按钮以在管道内按下?
我需要清除和清理 Jenkins 构建历史记录:Yesterday - 2 days ago - All builds。我怎样才能在詹金斯做到这一点?
我们有一个在多个主机上并行运行的 Python 结构命令,如下所示:
$ fab --hosts=prod1.server,prod2.server,prod3.server --parallel copy_cache
Run Code Online (Sandbox Code Playgroud)
这会将缓存复制到并行列出的生产服务器。由于 XXgig 缓存目录可能需要数小时,因此在整个过程中会发生各种日志记录以指示我们的进展情况。由于复制是并发进行的,因此在命令行上运行时的输出会实时交错返回,如下所示:
[prod1.server] Executing task 'nginx_cache_copy'
[prod2.server] Executing task 'nginx_cache_copy'
[prod3.server] Executing task 'nginx_cache_copy'
2014-09-16 10:02:29.688243
[prod1.server] INFO: rsyncing cache dir
[prod1.server] run: rsync -a -q cache.server:"repo/cache/some.site.com" \
"repo/cache/."
2014-09-16 10:02:29.716345
[prod2.server] INFO: rsyncing cache dir
[prod2.server] run: rsync -a -q cache.server:"repo/cache/some.site.com" \
"repo/cache/."
2014-09-16 10:02:29.853275
[prod3.server] INFO: rsyncing cache dir
[prod3.server] run: rsync -a -q cache.server:"repo/cache/some.site.com" \
"repo/cache/."
2014-09-16 10:02:29.984154
[prod1.server] INFO: Reloading nginx config
[prod1.server] run: sbin/nginx -s reload …Run Code Online (Sandbox Code Playgroud) 我是詹金斯的新手。我有一份工作,我需要每 1 小时安排一次。
我在用
* */1 * * *
Run Code Online (Sandbox Code Playgroud)
但它没有有效地工作。
请提供任何其他解决方案。
我有一个运行 jenkins 的 redhat linux 服务器。我按照这里提到的说明设置 jenkins https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions问题是我需要按顺序切换到 jenkins 用户解决 ssh 连接问题,但我不能。
我试试
su - jenkins
Run Code Online (Sandbox Code Playgroud)
我进入,终端遗体但是之后[root@redhat ~]#和whoami揭示,我还是root我看过的文件/etc/passwd etc/shadow,看到詹金斯是一个用户,但我没有足够的经验来告诉我有什么做错了设立这个詹金斯用户。
任何想法都会有所帮助,或者寻找线索的地方?
我们正在为我们的 Android 开发设置一个持续集成服务器,我们很快就遇到了 ADB 的等待设备问题。
为了记录,我们已经尝试了很多、、 等的组合adb kill-server,但都无济于事。adb start-serveradb devices
可悲的是,我在互联网上发现的所有内容都是“拔出并重新插入设备”的变体,这显然不是我们的解决方案(我们不能让一个人坐在 CI 服务器旁拔出和重新插入设备之前每个构建)。
作为一点背景知识,我们在 Mac 上使用 Jenkins,因为它也为 iOS 运行我们的 CI。
在解决这个问题时,我认为如果在操作系统级别找到了设备,那至少是一个开始。实际上,运行类似system_profiler SPUSBDataType成功找到设备的命令,包括 ADB 在正常工作时报告的序列号。
我尝试了一些相当蹩脚的命令来“刷新”所有 USB 活动,但我无处可去。并不是说您可以挂载/卸载设备,但说实话,我什至不确定问题出在哪里,我对低级 USB 协议了解不够,更不用说 Mac 了。我对ADB 源代码的潜伏期非常长。
所以在这一点上,我非常期待一个解决方案,它可以让我们在我们的 CI 服务器上持续运行 Android。无论是在每个 Jenkins 工作之前的几个命令,修补 ADB 或任何其他黑魔法。
是否可以禁用每个作业配置的手动构建触发器?
显然,我不想禁用作业,因为它应该由其他构建触发器(SCM 轮询、调度、上游作业)触发。
jenkins ×10
android ×1
bash ×1
command-line ×1
deployment ×1
language ×1
python ×1
shell ×1
threads ×1
user ×1