Re: Git plugin: how does it decide to build instead of aborting?

2015-08-05 Thread bl0ck3r



 What do you have in your Branches to build configuration?  It would 
 appear that it's something that doesn't match any of the remote branches. 


That was the right question to ask... and I got it to work.
Branches to build: fork/${FORK_BRANCH}

And I even threw in the Merge before build:
Name of repository: upstream
Branch to merge to: ${UPSTREAM_BRANCH}

Now it works. Thank you.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/fd2401b2-022c-4eca-bb51-533bba0d89c7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Git plugin: how does it decide to build instead of aborting?

2015-08-01 Thread bl0ck3r
In the big picture, I want to give my users a job where they specify both 
the source (fork) and destination (upstream) git repository, as well as the 
source and destination branch names, and I want jenkins to merge the source 
(repo, branch) into the destination (repo, branch), then build. The source 
repo is a fork of the upstream repo, necessarily.

The git-plugin clones and fetches everything without any problem, but it 
errors out in the end. I am puzzled.

Here is the configuration:
Repo URL: ${UPSTREAM_REPO}
Name: upstream
Refspec: 
+refs/heads/${UPSTREAM_BRANCH}:refs/remotes/upstream/${UPSTREAM_BRANCH}

Repo URL: ${FORK_REPO}
Name: fork
Refspec: +refs/heads/${FORK_BRANCH}:refs/remotes/fork/${FORK_BRANCH}

Additional behaviours:
Wipe out repository and force clone
Check out to specific local branch: ${UPSTREAM_BRANCH}
Merge before build
Name of repository: upstream
Branch to merge to: ${UPSTREAM_BRANCH}

The the user supplies the four parameters:
UPSTREAM_REPO=ssh://g...@stash.domain.com/path/project.git
UPSTREAM_BRANCH=master
FORK_REPO=ssh://g...@stash.domain.com/~user/project.git
FORK_BRANCH=master

The the user hits build, and the git-plugin ends with an error:
Seen branch in repository fork/master
Seen branch in repository upstream/master
Seen 2 remote branches
ERROR: Couldn't find any revision to build. Verify the repository and 
branch configuration for this job.
Finished: Failure

There are no errors before that in the log. The workspace contains the .git 
folder, with those branches not checked out - despite the fact that I asked 
for a specific local branch to be checked out:
git branch -a
  remotes/fork/master
  remotes/upstream/master

What causes the Git plugin to error out like that? What makes it decide 
that it should abort instead of proceeding with the build?

I use Git 2.4.3, git-plugin 2.4.0, jenkins 1.609.1.

Thanks,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/351b9b72-0eea-4cd6-80ee-ae8da2d0a1aa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


build pipeline plugin links are all 404

2015-06-24 Thread bl0ck3r
The links on the build result page created by the build pipeline plugin are 
all broken and yield 404.
The links look like this:
http://host/1997eef2-85a8-407c-ac43-11bc67cb7403/job/jobName/

What is that hex number for? How do I fix these links?

Thanks,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/5ebdd9f6-d3ed-4d28-b25c-e4741c0ff9ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: jenkins support for parametrized test results

2015-05-07 Thread bl0ck3r
That's almost what I am looking for: each parameter is reported in a 
separate report. Is there a way to see the trend of a parametrized test 
over time, regardless of the parameter value? I mean the trend of the test, 
not the trend of each parameter value.

Also, when I have say 50 parameter values for one test, is there a way to 
report on the test first, then and after clinking on the test, see the 
report for each parameter value?

If you know of such way to report parametrized test results, please let me 
know.

Thanks,
Martin

On Tuesday, May 5, 2015 at 3:46:48 PM UTC-4, Mark Waite wrote:


 https://jenkins.ci.cloudbees.com/job/plugins/job/git-client-plugin/org.jenkins-ci.plugins$git-client/lastCompletedBuild/testReport/org.jenkinsci.plugins.gitclient/GitTest/
  
 shows an example of the presentation of results from a parameterized test.

 Mark Waite

 On Tuesday, May 5, 2015 at 9:49:51 AM UTC-6, bl0ck3r wrote:

 Does jenkins support the JUnit XML format of JUnitParams for reporting 
 tests? 
 https://github.com/Pragmatists/JUnitParams/issues/38 

 If not, is there a Jenkins test report plugin able to report and track 
 parametrized tests reports? The report format has to be as easy as 
 JUnit XML as I write the reports myself (the existing test 
 infrastructures do not work for my multi-language projects). 

 Thanks, 
 Martin 



-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/5fb5c211-49da-48d3-80df-4c85cd67ea79%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: How to disable automatic scheduling of the Git Plugin

2015-01-28 Thread bl0ck3r
Yes, Mark was also suggesting that that as a probable cause, however, I 
think the problem is different. I decided to open a feature request, where 
I show that the Branch Specifier is set by a build parameter variable:
https://issues.jenkins-ci.org/browse/JENKINS-26664

Martin

 You might try leaving the branches to build field 

 You need to put the specific branch in the box, that causes it to ignore 
 all other branches. 



 It is because you have multiple branches matching the: 

 Branches to build: Branch Specifier (blank for 'any'): 



-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/12f161b6-631d-45e7-83fa-a811b389b9f7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: How to disable automatic scheduling of the Git Plugin

2015-01-28 Thread bl0ck3r
I see that message (Scheduling another build to catch up with 
project-integration) in the console. My use case is the same as yours: all 
my builds are on-demand. We definitely do not want any self-triggered 
builds.

On Wednesday, January 28, 2015 at 1:40:43 PM UTC-5, Dunnigan, Terrence J 
wrote:

  We have plenty of parameterized builds that we invoke on-demand, by 
 clicking ‘Build with Parameters’. They use git and build a specific branch. 
 They do not poll and we don’t use any external triggers. 

  

 I’ve never seen a message like the one you describe. Where do you get this 
 message? On the job configuration page? 

  

 Terry
  

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/ad4d91fc-7599-4265-9b8a-232b460d57a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


How to disable automatic scheduling of the Git Plugin

2015-01-27 Thread bl0ck3r
The Git Plugin tells me that it is Scheduling another build to catch up 
with project-integration
I do not use polling, I do not use any triggers, I have a plain job 
triggered by hand.
How do I turn off any and all of the automatic scheduling performed by the 
Git Plugin?

Thanks,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/10864b38-38cf-40bb-8f63-b0f5e9196072%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: git-plugin: can it do pull requests (no github)?

2015-01-26 Thread bl0ck3r
Thank Mark. I did not realize your were a maintainer on this plugin until I 
visited the wiki page. I have decided to learn the Git Plugin by 
experimenting with it, one baby step at a time. I am confused by the 
purpose of the refspec, and I have reopened 
https://issues.jenkins-ci.org/browse/JENKINS-14572.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/c07e1903-30d0-4dec-9f6d-89f8fc209f6e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


git-plugin: can it do pull requests (no github)?

2015-01-25 Thread bl0ck3r
I was under the impression that by installing the git-plugin, I would be 
able to support pull requests between two custom local repositories (say 
file:// - no github here). By that I mean that the git-plugin would clone a 
central repo, fetch a branch from a forked repo, and merge them. Then 
it would let the core of the build run. Then in the post build, the git 
publisher would push the merge back to the central repo if the build was 
successful (with a tag maybe).

I tried to make the git-plugin do that but it seems I need to write some 
parts by hand as I cannot get it to fetch from the forked repository. Am I 
mistaken about the git-plugin? Can it do all of this by itself?

Please do not suggest github, it is not an option (behind a firewall).

Thanks,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/3f47515d-6821-4836-8268-44ce0497eec1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: git-plugin: can it do pull requests (no github)?

2015-01-25 Thread bl0ck3r
Thanks for the offer. Yes, I'd like to see a config.xml. That should help 
me understand how to use the git-plugin (I think I over estimated what it 
is meant to do).

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/83b12583-5a32-4e5d-8f24-b66f13322e83%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Scripting language to learn

2014-12-27 Thread bl0ck3r
Scripts are great for writing process specific glue-programs and point 
tools.

I learned Bash from the internet, but after a while I bought the O'Reilly 
book Learning the bash shell, it was worth very penny and this 
accelerated my learning: don't waste time, buy a book. I also often find 
answers I need in the Bash Guide on Greg's Wiki bit: 
http://mywiki.wooledge.org/BashGuide

I have found Groovy quite fun to learn, esp since it can access the java 
libraries (argparse4j being one of my favourites). The biggest advantage of 
Groovy over Python is that it runs on the JVM, so it was just two downloads 
to get everything. Groovy automatically downloads the additional libraries 
it needs via imports and Grape, not need to get IT involved, no root access 
required.

I still use Python 3 quite a bit, but only with the built-in libraries, 
since getting external libraries installed was hard for me on some legacy 
OSes. I still know enough Perl to fix old scripts, but I don't bother 
writing new scripts in it. Nowadays, for any problem that requires data 
structure manipulations (trees, lists), I start with Groovy (I have read 
part of the book Programming Groovy 2 Venkat Subramaniam) . Last time I 
checked, Groovy performed really poorly with regular expressions, so when I 
have lots of them, I use Python instead (I have read O'Reilly Learning 
Python by Mark Lutz).

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/31e43c13-4f29-4e30-ac20-4d8f5c2e9651%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Update center is missing a plugin but it is listed in default.json

2014-12-11 Thread bl0ck3r
Is there a logger that I can turn on which would give me more information 
on this problem? The log reveals nothing relevant.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/935b30d7-2101-4654-9174-48ad0af3ec43%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Plugin to display arbitrary results?

2014-12-10 Thread bl0ck3r
Arbitrary data in tabular form, try:
https://wiki.jenkins-ci.org/display/JENKINS/Summary+Display+Plugin

For plotting data over time, try:
https://wiki.jenkins-ci.org/display/JENKINS/Plot+Plugin

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/5b94c0af-96f3-46ef-9089-02266b161a8f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


System groovy script: how do I import a custom class from the slave workspace?

2014-04-15 Thread bl0ck3r
Hi,

How does one import a custom class from within a system groovy script, when 
this class is in a file in the workspace?

The workspace is obtained like this:

def thr = Thread.currentThread();
def currentBuild = thr?.executable;
def workspace = currentBuild.getModuleRoot().absolutize().toString();

Then the class is loaded like this:
String roots = [workspace+/path/to/file]
def engine   = new GroovyScriptEngine(roots)
def JDU  = engine.loadScriptByName('JenkinsDescriptionUtils.groovy')

Then jenkins crashes with:
FATAL: Cannot open URL: 
file:/path/to/jenkins/%5B/path/to/slaves/myhost/workspace/job-name/path/to/file%5DJenkinsDescriptionUtils.groovy

I looks like Jenkins has its own classloader and prepends its own path to 
the path I want, thus breaking it.

I tried the simple solution, that is using a plain import statement, but 
that too did not work.

Thanks,
Martin


-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Loading job configuration pages is excruciatingly slow (minutes)

2014-01-28 Thread bl0ck3r
Everything in Jenkins is reasonably fast, but loading job configuration 
pages is frustratingly slow (minutes). Using Firefox, hosted on linux. 
Started happening a few months ago. I don't get it since Jenkins should 
only be loading the config.xml for the job... what else does it do that 
takes so long?

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: Loading job configuration pages is excruciatingly slow (minutes)

2014-01-28 Thread bl0ck3r
I should add that the CPU is railed all the time and that I use Jenkins 
1.509.2. There is nothing else on that host but Jenkins. We have about 50 
jobs, and thousands of results (and hundreds/thousands of JUnit xml files 
per build). Have I exceeded Jenkins capacity? How do I discover what 
Jenkins is doing, we're only running two jobs on two slaves, the master 
should have nothing to do but wait.

top - 09:24:57 up 72 days, 8 min,  2 users,  load average: 1.06, 1.18, 1.14
Tasks: 104 total,   1 running, 103 sleeping,   0 stopped,   0 zombie
Cpu0  : 99.0%us,  0.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.3%si,  
0.0%st
Mem:   4059656k total,  4022352k used,37304k free,   268708k buffers
Swap:  2097148k total,0k used,  2097148k free,  2728332k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 1627 jenkins-  20   0 1483m 656m 8936 S 99.9 16.6  5125456h java

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: Loading job configuration pages is excruciatingly slow (minutes)

2014-01-28 Thread bl0ck3r
Thanks for the advice.

1) scrolling to the end while config is loading: it gets to the end (the 
last post-build step which is editable email notification) very quickly. so 
it seems it's busy doing something else

2) examining the threadDump while loading the config is hung at the bottom: 
nothing stands out in terms of plugin name. However, reloading the 
threadDump repeatedly while the other tab is slowly loading the 
configuration page show that there is a lot of activity going on. I have 
pasted the threadDump here http://pastebin.com/F2Yhkjmp (but it changes all 
the time)

Does anyone see anything abnormal?

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


HTML Publisher plugin no longer listed

2013-07-03 Thread bl0ck3r
The HTML Publisher plugin is no longer listed on the following page... can 
some one bring it back please?

https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Duplicate test in JUnit XML breaks test result links

2013-05-30 Thread bl0ck3r
The second link in the All Failed Tests table breaks when this JUnit XML 
is used, is it a bug?

XML:
testsuite name=suite tests=2 failures=2 time=12
  testcase classname=package1.class1 name=test1 time=6
failure type=ftype message=msgfailed with seed value of 
123/failure
  /testcase
  testcase classname=package1.class1 name=test1 time=6
failure type=ftype message=msgfailed with seed value of 
456/failure
  /testcase
/testsuite

It looks like the problem is that although Jenkins is able to link to the 
test results themselves, it does not create two test result instances in 
the javascript:
a id=test-package1.class1.test1-showlink 
href=javascript:showStackTrace('test-package1.class1.test1','package1/class1/test1//summary')/a
a id=test-package1.class1.test1-showlink 
href=javascript:showStackTrace('test-package1.class1.test1','package1/class1/test1_2//summary')/a

Pay attention to the SECOND argument to the javascript:showStackTrace() 
call: test1 and test1_2 are different, while the FIRST argument is the same 
in both cases.

Question: Can duplicate tests be accommodated somehow? If not, is there a 
test report format that supports running multiple iterations of the same 
test?

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: End-user debugging Jenkins/Git Plugin

2013-05-29 Thread bl0ck3r
I tried the suggested Loggers and I see nothing in the logs. How do I find 
the right Loggers?

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Looking for XML report format that supports multiple iterations per test

2013-05-24 Thread bl0ck3r
I am looking at the NUnit samples, but I don't find an example of how to 
write a test report.

However, I have noticed the following with JUnix XML in Jenkins: if there 
are two identical tests in the test suite, Jenkins reports them separately:

testsuite name=TestsuiteName1
  testcase classname=Package1.Class1 name=Test1 time=4 
seed=3/testcase
  testcase classname=Package1.Class1 name=Test1 time=5 
seed=9/testcase
/testsuite

I wonder if this would work, or if it would silently break something else?


On Thursday, May 23, 2013 9:29:31 PM UTC-4, Mark Waite wrote:

 The NUnit framework supports that type of execution (
 http://nunit.org/?p=testCaser=2.5.5), so you might try the NUnit plugin 
 to see if its format meets your need.

 Mark Waite


-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Looking for XML report format that supports multiple iterations per test

2013-05-23 Thread bl0ck3r
Hi,

I am looking for any XML report format publishable by Jenkins, that is able 
to report multiple iterations of the same test when the same test is 
executed with different random seeds. I am NOT looking for a test 
framework, nor a test runner. I am only looking for a test report format 
digestible by Jenkins for writing custom test results myself. I already use 
JUnit XML, but it is limited to the package.class.testname hierarchy, and 
does not appear to support multiple iterations of the same test with 
different seeds.

Any pointers?
Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Why is this unstable rather than failed?

2013-05-01 Thread bl0ck3r
This JUnit XML file causes the build to be unstable. Why isn't it failed 
instead?

testsuite tests=2 failures=1 name=group1 time=4
testcase classname=group1.test_foo name=bar time=2failure 
type=Unused message=it 
failed/failuresystem-outSEED=1/system-out/testcase
testcase classname=group1.test_foo name=bar 
time=2system-outSEED=2/system-out/testcase
/testsuite

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Why is SIGTERM trap in freestyle shell script not executed?

2013-04-16 Thread bl0ck3r
In a freestyle job, the build phase has the following script:

#!/bin/bash
trap 'echo Death by SIGTERM; kill $pid; exit 15;' SIGTERM
sleep 10  pid=$!
echo Waiting
wait $pid
echo Exit status: $?


When this is aborted with the UI [x] red box, the message Death by 
SIGTERM never appears, but the exit code reflects the abort by printing 
Exit status: 143

Why is the trap content not executed?

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Looking for good Linux bash script examples

2013-03-30 Thread bl0ck3r
Bash is very good when the problem is solved by running unix commands. 
Learning bash is key, and I strongly recommend the O'Reilly book Learning 
the bash shell. The bash shell is mature and even if the book does not 
cover bash 4, all the fundamentals are there. I can recommend three sites 
for bash:
http://mywiki.wooledge.org/EnglishFrontPage
http://wiki.bash-hackers.org/doku.php
http://tldp.org/LDP/abs/html/

Exit codes are easy to master. An exit code of zero means the command has 
passed, anything else means the command has failed somehow. For example:
make my_target
if [[ $? -ne 0 ]]; then
  ret=1
  echo Make has failed 2
fi

I keep all my problems in the pass/fail category, and I never try to 
interpret non-zero exit codes because it gets too complicated. However it 
is key that any script underneath returns an exit code to its caller, all 
the way up to Jenkins, so make sure your Jenkins build step has an exit 
statement with an exit code that represents the worst error reported 
underneath.

If you use pipes, you should always use set -o pipefail. This will make 
sure that the pipe will not hide a failure (see man bash):
$ (exit 1 | echo hi)
hi
$ echo $?
0
$ set -o pipefail
$ (exit 1 | echo hi)
hi
$ echo $?
1

Now regarding Jenkins, when you have a parametrized build, Jenkins exports 
those parameters as shell variables that match your parameter names. You 
can see them in the console by adding the env command to your free style 
build. Also I recommend you always use the shebang to start your free style 
build (Jenkins will run your script with the -e option, but there are too 
many exceptions to set -e, so I just use #!/bin/bash, see: 
http://mywiki.wooledge.org/BashFAQ/105)

If you background jobs, you will need to keep track of their process ids, 
for example set a trap:
function onKill {
  kill $pid
  ... other clean up you might want to do goes here
}
./my_script  pid=$!
trap 'onKill; exit 1;' SIGINT SIGTERM
wait $pid
if [[ $? -ne 0 ]];
  echo my_script failed 2
fi

You will also need to generate JUnit XML reports in the format that Jenkins 
understand. Java is not the language of my builds, and it was very painful 
to figure out what Jenkins supported. It was a lot of trial an error, and 
there are many unclear explanations on the internet. I ended up with 
something similar to this: 
http://pzolee.blogs.balabit.com/2012/11/jenkins-vs-junit-xml-format/

My bash build step does not generate XML reports, but commands inside GNU 
Make, which is called by my script, do (it is actually many layers below 
the Jenkins script window in my case).

Last advice, keep the code in the build phase window to the bare minimum: 
put all the smarts in a script that Jenkins calls instead. This way you 
don't have to copy and paste bug fixes when you have the same script in 
multiple builds: you simply fix the script that Jenkins calls.

Bash is very powerful if you learn it well. If you need to manipulate data 
structures, then you will need to move up to a higher level language like 
python, but if all your build does is call commands and watch exit codes, 
bash will do the job really well.

Good luck.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




envinject plugin evaluated groovy script: how do I print text to the console?

2013-03-22 Thread bl0ck3r
I tried:
System.out.println(some text)
println(some text)
manager.listener.logger.println(some text)

and none of them work. How do I print text to the console from the 
evaluated groovy script of the envinject plugin?

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Promotion blocked by current build: Waiting to acquire the workspace

2012-08-29 Thread bl0ck3r
Hi,

My manual promotion process is being blocked and the thread dump shows this 
message:

Waiting to acquire /.../workspace/project-name : Executor #2 for hostname : 
executing project-name » promotion » Promotion #40

This is terrible since the build I need to promote is actually an older 
build, so I see no reason why it should wait for the current build to 
finish. I don't even use the workspace in the promotion process because of 
the risk of a race with the current build. My builds take several hours, 
and I cannot afford to have a promotion process that forces people to wait. 
Obviously, the build promotion plugin was built assuming all builds are 
very short.

Making the build shorter is not possible: synthesizing and simulating large 
chips takes a long time no matter what.

Other than the build promotion plugin, what do you people use to promote 
builds?

Cheers,
Martin


Re: Build Promotion and Copy Artifact: current build is overwritten

2012-08-18 Thread bl0ck3r


On Friday, August 17, 2012 5:56:29 PM UTC-4, qazwart wrote:


 On Aug 17, 2012, at 5:12 PM, bl0ck3r martin@gmail.com javascript: 
 wrote: 

  Well, I think what I am trying to achieve is simple: promote a build 
 while another build is running on the same project 

 Wait a second. Is the problem your copying in files to a project while a 
 build is running or copying files out of a build while a second build on 
 that project is running? 


What confused me is that the Copy Artifact (which is recommended by the 
Promoted Builds Plugin as the solution for not interfering with the 
workspace) does offer as a default value, the workspace as the target 
directory for the copy of the archived artifact. When I changed the target 
directory to be an absolute path outside of the workspace, it worked. This 
was counter intuitive to me.
 


 Anything you want to save should be archived which is a post build step. 
 Archived artifacts are kept for each build, so they're not overwritten when 
 a new build starts. You can copy out archived artifacts w/o affecting the 
 currently running build. 


Only if I the target directory for the copy is NOT the workspace.

Martin


Re: Build Promotion and Copy Artifact: current build is overwritten

2012-08-17 Thread bl0ck3r



  Another possibility is to copy the artifacts not to the build 
 directory itself, but to a directory outside of Jenkins (which is 
 pretty much what the Maven repository does for us). 


Well, I think what I am trying to achieve is simple: promote a build while 
another build is running on the same project. The artifact names are the 
same at each run, so the file names collide on the file system in the 
workspace during the promotion. Note that I clean up the workspace at the 
beginning of each new run of the job with rm -rf * because I want a clean 
slate when the job begins. Like you said, to solve the problem, I cannot 
copy the promoted build artifact into the current workspace, I need to copy 
it to an absolute path elsewhere. This is what I have done. It is an 
annoying workaround, I wish Jenkins promoted builds had their own workspace.

BTW I am not using Jenkins for a Java flow, so Maven does not apply to my 
case (and nor does any open source flow for that matter). I am happy that 
bare bones Jenkins is development flow agnostic and I hope it stays this 
way.

Cheers,
Martin



Displaying test results before job is finished

2012-05-15 Thread bl0ck3r
I have hundreds of tests in a job, and it can take several hours to
complete. Is there a way to have Jenkins display the test results as
the job progresses?

Do not tell me to split the job into smaller jobs, it is not practical
as I would end up with hundreds of jobs and this would be
unmanageable. I prefer to have one longer running job with hundreds of
small tests, than hundreds of jobs with fewer tests.

Thanks.


Displaying user in the Build History column on the left

2012-05-15 Thread bl0ck3r
How do I display the username of the person who launched the build in
the Build History (that is the box on the left-hand side of the job
page)


Re: how to report on multiple iterations of the same test

2012-03-29 Thread bl0ck3r
I was hoping to have an additional column for the seed value. I do not
know what a TestRunner is, and unless it works with SystemVerilog, I
can't use it.

On Mar 29, 3:27 am, Ullrich Hafner ullrich.haf...@gmail.com wrote:
 Can't you change the name of the test case dynamically? E.g., using a
 TestRunner?

 Ulli



how to report on multiple iterations of the same test

2012-03-28 Thread bl0ck3r
I need to report on multiple iterations of the same test when it is
run with different seeds. With the following report, jenkins does not
see multiple iterations... how do I get it to report all the
iterations?

?xml version=1.0 encoding=UTF-8?
testsuite errors=0 failures=0 hostname=bar name=foo.When
tests=3 time=0.0060 timestamp=2010-12-04T19:14:28
  properties /
  testcase classname=foo.When name=test1 seed=1 time=0.0020 /

  testcase classname=foo.When name=test1 seed=2 time=0.0020 /

  testcase classname=foo.When name=test2 seed=1 time=0.0020 /

/testsuite


Thanks.