我开始为jenkins(以前的工作流程)管道工作
我正在使用IntelliJ作为IDE
是否有GDSL文档的来源或某种方式我可以知道哪些groovy在管道中可接受,哪些不是?
还有一种方法,我可以在检查我的Jenkinsfile之前测试运行GDSL吗?
我想将CloudBees用于我的CI环境,但我也想将我的Maven工件部署到我现有的私有Nexus存储库.在我当前的本地Hudson设置中,我使用.m2/settings.xml文件中的用户名/密码设置,如下所示:
...
<servers>
<server>
<id>my-repository</id>
<username>username</username>
<password>password</password>
</server>
</servers>
...
Run Code Online (Sandbox Code Playgroud)
如何/在何处可以在CloudBees上配置这些凭据?
我有一些最近失败的测试,原因如下:没有设置X11 DISPLAY变量,但是这个程序执行了一个需要它的操作.
这是完整的堆栈跟踪:
testGetDialog(simple.marauroa.application.core.IAddApplicationDialogProviderTest) Time elapsed: 112 sec <<< ERROR!
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:431)
at java.awt.Frame.<init>(Frame.java:403)
at java.awt.Frame.<init>(Frame.java:368)
at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1733)
at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1810)
at javax.swing.JDialog.<init>(JDialog.java:253)
at javax.swing.JDialog.<init>(JDialog.java:187)
at javax.swing.JDialog.<init>(JDialog.java:135)
at simple.marauroa.application.core.IAddApplicationDialogProviderTest$IAddApplicationDialogProviderImpl.getDialog(IAddApplicationDialogProviderTest.java:97)
at simple.marauroa.application.core.IAddApplicationDialogProviderTest.testGetDialog(IAddApplicationDialogProviderTest.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用Ant脚本将工件部署到我的快照/私有存储库,但是我得到了一个Forbidden异常,如下所示.看起来用户名和密码是正确的,因为如果我更改它们,我会得到一个不同的错误(未经授权).我错过了什么?
[exec] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom:
Failed to deploy artifacts: Could not transfer artifact br.com.simpleconsulting.portal:portal-client:jar:6.1.0-20121007.102101-1 from/to cloudbees-snapshot (https://repository-tmoreira2020.forge.cloudbees.com/snapshot):
Access denied to: https://repository-tmoreira2020.forge.cloudbees.com/snapshot/br/com/simpleconsulting/portal/portal-client/6.1.0-SNAPSHOT/portal-client-6.1.0-20121007.102101-1.jar, ReasonPhrase:Forbidden. -> [Help 1]
Run Code Online (Sandbox Code Playgroud) 如何从github注释中触发我的pull-request的Travis重建?
在Github上创建了一个pull-request之后,Travis PR构建了触发器.如果我们想重新触发构建,我们可以按下Restart JobTravis GUI上的按钮:
但有没有办法Restart Job通过监听Github Pull-Request中的注释来触发,也许会查找特定的注释文本,例如[CI: Restart build]?
在带有Cloudbees的Jenkins中,可以在该Build Triggers部分中设置触发短语,例如
特拉维斯也有可能吗?
如何从github注释中触发我的pull-request的Travis重建?
我想在 Jenkins 脚本管道中定义一个全局变量,可以在管道中的任何位置访问该变量。即任何阶段、任何方法。如果我在管道顶部定义 var,它可以在声明node和stage声明中工作,但不能在被调用的方法中工作。我不想使用 env.XXX 和 withEnv([]) 因为我可能必须从不同的地方调用这些方法,这意味着有时会使用 env,而不是其他的。
这是我用于脚本化管道的简单 JenkinsFile:
def jenkinsNode = 'linux'
def DEBUG = 1
node(jenkinsNode){
echo ">> node($jenkinsNode)"
echo "DEBUG = $DEBUG"
if (DEBUG) {
echo "DEBUG is On"}
else {
echo "DEBUG is Off"
}
stage('test-this') {
if (DEBUG) {
echo "DEBUG is On"}
else {
echo "DEBUG is Off"
}
testMethod()
}
echo "<< node($jenkinsNode)"
}
def testMethod() {
echo ">> testMethod()"
if (DEBUG) {
echo "DEBUG is On"} …Run Code Online (Sandbox Code Playgroud) 有没有办法确保谁实际上是我们的Git存储库的提交者?我们在CloudBees中有每个开发人员的密钥,因此确保它是其中之一,但有没有什么可以阻止一个开发人员在提交字段中输入另一个开发人员的名字/电子邮件?如果不是阻止它们的方法,是否有办法至少从Git日志中确定提交者的SSH密钥?
这有点奇怪,对我来说就像一个小虫.
一周前我创造了一个游戏!带有cloudbees ClickStart的Framework 2应用程序.一切都很好,从GitHub重建很好,正在部署罚款.
关键的是,在这个为期一周的应用程序后期构建部分的构建配置中看起来像这样:

我今天用cloudbees ClickStart创建的应用程序有不同的后期构建部分:

出于某种原因(Jenkins)已从凭据中删除,而帐户下拉列表为空.
它成功构建应用程序,但随后显示错误:
com.cloudbees.plugins.deployer.exceptions.DeployException: Cannot find user null
at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl.<init>(RunEngineImpl.java:75)
at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl$FactoryImpl.build(RunEngineImpl.java:170)
at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl$FactoryImpl.build(RunEngineImpl.java:161)
at com.cloudbees.plugins.deployer.DeployPublisher.perform(DeployPublisher.java:103)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:790)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:762)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:715)
at hudson.model.Run.execute(Run.java:1617)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:237)
Run Code Online (Sandbox Code Playgroud)
它是一个bug还是一个功能???
我在Cloudbees上设置了Jenkins Job,我可以在那里成功结账并编译我的Android项目.现在我想在android模拟器中运行一些JUnit测试并添加Android模拟器插件.我将"显示仿真器窗口"选项设置为false但在启动仿真器后,我总是收到错误消息:"仿真器似乎没有启动; 放弃".有没有人在Cloudbees上使用Android构建体验?
构建日志:
$ /opt/android/android-sdk-linux/tools/android list target
[android] Using Android SDK: /opt/android/android-sdk-linux
[android] Creating Android AVD: /home/jenkins/.android/avd/hudson_en-US_160_WVGA_android-17_armeabi-v7a.avd
[android] /opt/android/android-sdk-linux/tools/android create avd -f -a -c 64M -s WVGA800 -n hudson_en-US_160_WVGA_android-17_armeabi-v7a -t android-17 --abi armeabi-v7a
$ /opt/android/android-sdk-linux/platform-tools/adb start-server
[android] Starting Android emulator
$ /opt/android/android-sdk-linux/tools/emulator -no-boot-anim -ports 59102,56142 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_WVGA_android-17_armeabi-v7a -no-snapshot-load -no-snapshot-save -no-window
Failed to Initialize backend EGL display
* daemon not running. starting it now on port 52538 *
* daemon started successfully *
[android] Emulator did … 所以我正在做一个学校项目,并且正在尝试构建JSON Rest Webservice应用程序。我在Jackson 4中使用Spring 4和Hibernate 4。
我在使用此应用程序时遇到了很多困难,但是现在遇到了一个我无法克服的问题。我将Cloudbees用作我的云服务提供商,并且时不时要指出这一点(这很重要,因为它有时可以工作,有时不能!)。我收到HTTP 500错误:/。最好的部分是-我从来没有在本地买过它。
它或多或少是这样的:
HTTP状态500-请求处理失败;嵌套异常是java.lang.IllegalStateException:映射的控制器方法类'pl.lodz.pp.controllers.crud.impl.UserController'不是实际控制器bean实例'com.sun.proxy。$ Proxy47'的实例。如果控制器需要代理(例如,由于@Transactional),请使用基于类的代理。
而且我很困惑。我从来没有在本地获得此文件,通常如果我在云上重新启动应用程序(一次或多次),它将再次运行一段时间。
我犯了一些错误,例如
@Autowire
private ClassType variable
Run Code Online (Sandbox Code Playgroud)
代替
@Autowire
private ClassInterface variable
Run Code Online (Sandbox Code Playgroud)
但是我都把它们修好了。我@Transactional不再使用注释。至少不在我班上。也许GenericDao在某处有它(https://code.google.com/p/hibernate-generic-dao/),但是我以前从未遇到过这个问题。
交易管理:
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
Run Code Online (Sandbox Code Playgroud)
请在这里找到完整的代码:https: //github.com/atais/PP-JSON
底线 ,我不使用@Transactional和我注入的一切接口类型。那我可能做错了什么?最好的是-有时可以使用,但是有时会出现此错误:/