How to persist data in BuildStep's perform method?

29 views
Skip to first unread message

司芳源

unread,
Nov 30, 2017, 11:39:45 PM11/30/17
to Jenkins Developers

In my builder class I have a Integer field, which will increase by 1 in the perform method. I tested it, this field did increase after each build as expected. However, after jenkins reboot, this field returned to its initial value, because its value is not changed in the job's config.xml. I don't know how jenkins remembered this field's last state when running(maybe in memory?).

My question is how can I persist the change in the job's config.xml? So that I'll not lose the change even after jenkins reboot?

Robert Sandell

unread,
Dec 1, 2017, 6:23:53 AM12/1/17
to jenkin...@googlegroups.com
You add an action to the build or the job.

/B

2017-12-01 4:31 GMT+01:00 司芳源 <sify...@gmail.com>:

In my builder class I have a Integer field, which will increase by 1 in the perform method. I tested it, this field did increase after each build as expected. However, after jenkins reboot, this field returned to its initial value, because its value is not changed in the job's config.xml. I don't know how jenkins remembered this field's last state when running(maybe in memory?).

My question is how can I persist the change in the job's config.xml? So that I'll not lose the change even after jenkins reboot?

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/12fc6bba-7d43-467c-8b53-5195badecda5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Robert Sandell
Software Engineer
CloudBees Inc.

司芳源

unread,
Dec 2, 2017, 8:59:32 AM12/2/17
to Jenkins Developers
Hi Robert, the link you gave describes how to add an action to a build. but I can't store this field in a build's action, because I might lose track of this field. For example, if a build fails before it gets to my plugin, or at some time the user decides to delete all previous build.

So it's better to store this field at the project's level, whose value may(or may not) change over each build. 

Does "the job" in your answer means "project"? If so, How do you add action to a project and change it over build?
 
On Friday, December 1, 2017 at 7:23:53 PM UTC+8, Robert Sandell wrote:
You add an action to the build or the job.

/B
2017-12-01 4:31 GMT+01:00 司芳源 <sify...@gmail.com>:

In my builder class I have a Integer field, which will increase by 1 in the perform method. I tested it, this field did increase after each build as expected. However, after jenkins reboot, this field returned to its initial value, because its value is not changed in the job's config.xml. I don't know how jenkins remembered this field's last state when running(maybe in memory?).

My question is how can I persist the change in the job's config.xml? So that I'll not lose the change even after jenkins reboot?

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Robert Sandell

unread,
Dec 4, 2017, 7:58:38 AM12/4/17
to jenkin...@googlegroups.com
Both Run (the base class for most build types) and Job (the base class for most Project types) implements Actionable which is the base class for anything that can store Actions.

/B

To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/72ff46df-ba8d-405d-a9d5-f240ec85e6ef%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages